From 5e5020ceb9f7ee75ab9ee66f4c43f61a1e9d66e9 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 1 Nov 2011 15:31:00 -0700 Subject: [PATCH] 3.0 patches --- ...caif-fix-bug-with-network-namespaces.patch | 63 ++++++++++++++++++ ...-fix-enabling-force-feedback-support.patch | 32 ++++++++++ ...oop_msg-overflow-in-__request_module.patch | 40 ++++++++++++ ...some-listeners-cannot-handle-message.patch | 37 +++++++++++ ...on-t-redirty-inode-when-ncommit-0-in.patch | 57 +++++++++++++++++ ...ix-error-path-in-samsung-laptop-init.patch | 39 +++++++++++ ...ptop-add-dmi-information-for-samsung.patch | 45 +++++++++++++ ...laptop-add-support-for-x520-machines.patch | 37 +++++++++++ ...aptop-fix-samsung-brightness-min-max.patch | 59 +++++++++++++++++ ...ptop-samsung-backlight-for-r528-r728.patch | 38 +++++++++++ queue-3.0/qe-fhci-fixed-the-control-bug.patch | 64 +++++++++++++++++++ ...inode-calls-write_inode-when-syncing.patch | 47 ++++++++++++++ queue-3.0/series | 15 +++++ ...-address-for-stable-patch-submission.patch | 51 +++++++++++++++ ...ate-warning-comment-to-use-e820_host.patch | 47 ++++++++++++++ queue-3.0/xen-swiotlb-fix-wrong-panic.patch | 45 +++++++++++++ 16 files changed, 716 insertions(+) create mode 100644 queue-3.0/caif-fix-bug-with-network-namespaces.patch create mode 100644 queue-3.0/hid-acrux-fix-enabling-force-feedback-support.patch create mode 100644 queue-3.0/kmod-prevent-kmod_loop_msg-overflow-in-__request_module.patch create mode 100644 queue-3.0/kobj_uevent-ignore-if-some-listeners-cannot-handle-message.patch create mode 100644 queue-3.0/nfs-don-t-redirty-inode-when-ncommit-0-in.patch create mode 100644 queue-3.0/platform-fix-error-path-in-samsung-laptop-init.patch create mode 100644 queue-3.0/platform-samsung_laptop-add-dmi-information-for-samsung.patch create mode 100644 queue-3.0/platform-samsung_laptop-add-support-for-x520-machines.patch create mode 100644 queue-3.0/platform-samsung_laptop-fix-samsung-brightness-min-max.patch create mode 100644 queue-3.0/platform-samsung_laptop-samsung-backlight-for-r528-r728.patch create mode 100644 queue-3.0/qe-fhci-fixed-the-control-bug.patch create mode 100644 queue-3.0/revert-nfs-ensure-that-writeback_single_inode-calls-write_inode-when-syncing.patch create mode 100644 queue-3.0/update-email-address-for-stable-patch-submission.patch create mode 100644 queue-3.0/xen-pcifront-update-warning-comment-to-use-e820_host.patch create mode 100644 queue-3.0/xen-swiotlb-fix-wrong-panic.patch diff --git a/queue-3.0/caif-fix-bug-with-network-namespaces.patch b/queue-3.0/caif-fix-bug-with-network-namespaces.patch new file mode 100644 index 00000000000..42330743586 --- /dev/null +++ b/queue-3.0/caif-fix-bug-with-network-namespaces.patch @@ -0,0 +1,63 @@ +From 08613e4626c06ca408fc55071f6aedee36986a87 Mon Sep 17 00:00:00 2001 +From: David Woodhouse +Date: Mon, 24 Oct 2011 21:25:21 +0000 +Subject: caif: Fix BUG() with network namespaces +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: David Woodhouse + +commit 08613e4626c06ca408fc55071f6aedee36986a87 upstream. + +The caif code will register its own pernet_operations, and then register +a netdevice_notifier. Each time the netdevice_notifier is triggered, +it'll do some stuff... including a lookup of its own pernet stuff with +net_generic(). + +If the net_generic() call ever returns NULL, the caif code will BUG(). +That doesn't seem *so* unreasonable, I suppose — it does seem like it +should never happen. + +However, it *does* happen. When we clone a network namespace, +setup_net() runs through all the pernet_operations one at a time. It +gets to loopback before it gets to caif. And loopback_net_init() +registers a netdevice... while caif hasn't been initialised. So the caif +netdevice notifier triggers, and immediately goes BUG(). + +We could imagine a complex and overengineered solution to this generic +class of problems, but this patch takes the simple approach. It just +makes caif_device_notify() *not* go looking for its pernet data +structures if the device it's being notified about isn't a caif device +in the first place. + +Signed-off-by: David Woodhouse +Acked-by: Sjur Brændeland +Signed-off-by: David S. Miller +Signed-off-by: Greg Kroah-Hartman + +--- + net/caif/caif_dev.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/net/caif/caif_dev.c ++++ b/net/caif/caif_dev.c +@@ -209,8 +209,7 @@ static int caif_device_notify(struct not + enum cfcnfg_phy_preference pref; + enum cfcnfg_phy_type phy_type; + struct cfcnfg *cfg; +- struct caif_device_entry_list *caifdevs = +- caif_device_list(dev_net(dev)); ++ struct caif_device_entry_list *caifdevs; + + if (dev->type != ARPHRD_CAIF) + return 0; +@@ -219,6 +218,8 @@ static int caif_device_notify(struct not + if (cfg == NULL) + return 0; + ++ caifdevs = caif_device_list(dev_net(dev)); ++ + switch (what) { + case NETDEV_REGISTER: + caifd = caif_device_alloc(dev); diff --git a/queue-3.0/hid-acrux-fix-enabling-force-feedback-support.patch b/queue-3.0/hid-acrux-fix-enabling-force-feedback-support.patch new file mode 100644 index 00000000000..a171c415586 --- /dev/null +++ b/queue-3.0/hid-acrux-fix-enabling-force-feedback-support.patch @@ -0,0 +1,32 @@ +From 364b936fc38dec7653c690d710e10657af235a36 Mon Sep 17 00:00:00 2001 +From: Sergei Kolzun +Date: Thu, 4 Aug 2011 00:25:56 -0700 +Subject: HID: ACRUX - fix enabling force feedback support + +From: Sergei Kolzun + +commit 364b936fc38dec7653c690d710e10657af235a36 upstream. + +The config option needs to be a 'bool' and not a tristate, otheriwse +force feedback support never makes it into the module. + +Signed-off-by: Sergei Kolzun +Signed-off-by: Dmitry Torokhov +Signed-off-by: Jiri Kosina +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/hid/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/hid/Kconfig ++++ b/drivers/hid/Kconfig +@@ -69,7 +69,7 @@ config HID_ACRUX + Say Y here if you want to enable support for ACRUX game controllers. + + config HID_ACRUX_FF +- tristate "ACRUX force feedback support" ++ bool "ACRUX force feedback support" + depends on HID_ACRUX + select INPUT_FF_MEMLESS + ---help--- diff --git a/queue-3.0/kmod-prevent-kmod_loop_msg-overflow-in-__request_module.patch b/queue-3.0/kmod-prevent-kmod_loop_msg-overflow-in-__request_module.patch new file mode 100644 index 00000000000..00788c20c48 --- /dev/null +++ b/queue-3.0/kmod-prevent-kmod_loop_msg-overflow-in-__request_module.patch @@ -0,0 +1,40 @@ +From 37252db6aa576c34fd794a5a54fb32d7a8b3a07a Mon Sep 17 00:00:00 2001 +From: Jiri Kosina +Date: Wed, 26 Oct 2011 13:10:39 +1030 +Subject: kmod: prevent kmod_loop_msg overflow in __request_module() + +From: Jiri Kosina + +commit 37252db6aa576c34fd794a5a54fb32d7a8b3a07a upstream. + +Due to post-increment in condition of kmod_loop_msg in __request_module(), +the system log can be spammed by much more than 5 instances of the 'runaway +loop' message if the number of events triggering it makes the kmod_loop_msg +to overflow. + +Fix that by making sure we never increment it past the threshold. + +Signed-off-by: Jiri Kosina +Signed-off-by: Rusty Russell +Signed-off-by: Greg Kroah-Hartman + +--- + kernel/kmod.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/kernel/kmod.c ++++ b/kernel/kmod.c +@@ -114,10 +114,12 @@ int __request_module(bool wait, const ch + atomic_inc(&kmod_concurrent); + if (atomic_read(&kmod_concurrent) > max_modprobes) { + /* We may be blaming an innocent here, but unlikely */ +- if (kmod_loop_msg++ < 5) ++ if (kmod_loop_msg < 5) { + printk(KERN_ERR + "request_module: runaway loop modprobe %s\n", + module_name); ++ kmod_loop_msg++; ++ } + atomic_dec(&kmod_concurrent); + return -ENOMEM; + } diff --git a/queue-3.0/kobj_uevent-ignore-if-some-listeners-cannot-handle-message.patch b/queue-3.0/kobj_uevent-ignore-if-some-listeners-cannot-handle-message.patch new file mode 100644 index 00000000000..43813654b83 --- /dev/null +++ b/queue-3.0/kobj_uevent-ignore-if-some-listeners-cannot-handle-message.patch @@ -0,0 +1,37 @@ +From ebf4127cd677e9781b450e44dfaaa1cc595efcaa Mon Sep 17 00:00:00 2001 +From: Milan Broz +Date: Mon, 22 Aug 2011 15:51:34 +0200 +Subject: kobj_uevent: Ignore if some listeners cannot handle message + +From: Milan Broz + +commit ebf4127cd677e9781b450e44dfaaa1cc595efcaa upstream. + +kobject_uevent() uses a multicast socket and should ignore +if one of listeners cannot handle messages or nobody is +listening at all. + +Easily reproducible when a process in system is cloned +with CLONE_NEWNET flag. + +(See also http://article.gmane.org/gmane.linux.kernel.device-mapper.dm-crypt/5256) + +Signed-off-by: Milan Broz +Acked-by: Kay Sievers +Signed-off-by: Greg Kroah-Hartman + +--- + lib/kobject_uevent.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/lib/kobject_uevent.c ++++ b/lib/kobject_uevent.c +@@ -282,7 +282,7 @@ int kobject_uevent_env(struct kobject *k + kobj_bcast_filter, + kobj); + /* ENOBUFS should be handled in userspace */ +- if (retval == -ENOBUFS) ++ if (retval == -ENOBUFS || retval == -ESRCH) + retval = 0; + } else + retval = -ENOMEM; diff --git a/queue-3.0/nfs-don-t-redirty-inode-when-ncommit-0-in.patch b/queue-3.0/nfs-don-t-redirty-inode-when-ncommit-0-in.patch new file mode 100644 index 00000000000..70a55ed89f7 --- /dev/null +++ b/queue-3.0/nfs-don-t-redirty-inode-when-ncommit-0-in.patch @@ -0,0 +1,57 @@ +From 3236c3e1adc0c7ec83eaff1de2d06746b7c5bb28 Mon Sep 17 00:00:00 2001 +From: Jeff Layton +Date: Tue, 11 Oct 2011 09:49:21 -0400 +Subject: nfs: don't redirty inode when ncommit == 0 in + nfs_commit_unstable_pages + +From: Jeff Layton + +commit 3236c3e1adc0c7ec83eaff1de2d06746b7c5bb28 upstream. + +commit 420e3646 allowed the kernel to reduce the number of unnecessary +commit calls by skipping the commit when there are a large number of +outstanding pages. + +However, the current test in nfs_commit_unstable_pages does not handle +the edge condition properly. When ncommit == 0, then that means that the +kernel doesn't need to do anything more for the inode. The current test +though in the WB_SYNC_NONE case will return true, and the inode will end +up being marked dirty. Once that happens the inode will never be clean +until there's a WB_SYNC_ALL flush. + +Fix this by immediately returning from nfs_commit_unstable_pages when +ncommit == 0. + +Mike noticed this problem initially in RHEL5 (2.6.18-based kernel) which +has a backported version of 420e3646. The inode cache there was growing +very large. The inode cache was unable to be shrunk since the inodes +were all marked dirty. Calling sync() would essentially "fix" the +problem -- the WB_SYNC_ALL flush would result in the inodes all being +marked clean. + +What I'm not clear on is how big a problem this is in mainline kernels +as the writeback code there is very different. Either way, it seems +incorrect to re-mark the inode dirty in this case. + +Reported-by: Mike McLean +Signed-off-by: Jeff Layton +Signed-off-by: Trond Myklebust +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfs/write.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/fs/nfs/write.c ++++ b/fs/nfs/write.c +@@ -1526,6 +1526,10 @@ static int nfs_commit_unstable_pages(str + int flags = FLUSH_SYNC; + int ret = 0; + ++ /* no commits means nothing needs to be done */ ++ if (!nfsi->ncommit) ++ return ret; ++ + if (wbc->sync_mode == WB_SYNC_NONE) { + /* Don't commit yet if this is a non-blocking flush and there + * are a lot of outstanding writes for this mapping. diff --git a/queue-3.0/platform-fix-error-path-in-samsung-laptop-init.patch b/queue-3.0/platform-fix-error-path-in-samsung-laptop-init.patch new file mode 100644 index 00000000000..402eb0f842a --- /dev/null +++ b/queue-3.0/platform-fix-error-path-in-samsung-laptop-init.patch @@ -0,0 +1,39 @@ +From a7ea19926ffba86f373f6050a106cd162dbb9a78 Mon Sep 17 00:00:00 2001 +From: David Herrmann +Date: Tue, 20 Sep 2011 09:16:12 -0700 +Subject: Platform: Fix error path in samsung-laptop init + +From: David Herrmann + +commit a7ea19926ffba86f373f6050a106cd162dbb9a78 upstream. + +samsung_init() should not return success if not all devices are initialized. +Otherwise, samsung_exit() will dereference sdev NULL pointers and others. + +Signed-off-by: David Herrmann +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Matthew Garrett + +--- + drivers/platform/x86/samsung-laptop.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/drivers/platform/x86/samsung-laptop.c ++++ b/drivers/platform/x86/samsung-laptop.c +@@ -789,7 +789,7 @@ static int __init samsung_init(void) + sabi_iface = ioremap_nocache(ifaceP, 16); + if (!sabi_iface) { + pr_err("Can't remap %x\n", ifaceP); +- goto exit; ++ goto error_no_signature; + } + if (debug) { + printk(KERN_DEBUG "ifaceP = 0x%08x\n", ifaceP); +@@ -841,7 +841,6 @@ static int __init samsung_init(void) + if (retval) + goto error_file_create; + +-exit: + return 0; + + error_file_create: diff --git a/queue-3.0/platform-samsung_laptop-add-dmi-information-for-samsung.patch b/queue-3.0/platform-samsung_laptop-add-dmi-information-for-samsung.patch new file mode 100644 index 00000000000..aa12c3d0c4c --- /dev/null +++ b/queue-3.0/platform-samsung_laptop-add-dmi-information-for-samsung.patch @@ -0,0 +1,45 @@ +From f87d02996f05ec1789ceecce9ec839f629b7aa80 Mon Sep 17 00:00:00 2001 +From: Stefan Beller +Date: Tue, 20 Sep 2011 09:16:08 -0700 +Subject: platform: samsung_laptop: add dmi information for Samsung + R700 laptops + +From: Stefan Beller + +commit f87d02996f05ec1789ceecce9ec839f629b7aa80 upstream. + +My DMI model is this: +>dmesg |grep DMI +[ 0.000000] DMI present. +[ 0.000000] DMI: SAMSUNG ELECTRONICS CO., LTD. SR700/SR700, BIOS +04SR 02/20/2008 + +adding dmi information of Samsung R700 laptops +This adds the dmi information of Samsungs R700 laptops. + +Signed-off-by: Stefan Beller +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Matthew Garrett + +--- + drivers/platform/x86/samsung-laptop.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/platform/x86/samsung-laptop.c ++++ b/drivers/platform/x86/samsung-laptop.c +@@ -631,6 +631,15 @@ static struct dmi_system_id __initdata s + .callback = dmi_check_cb, + }, + { ++ .ident = "R700", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "SR700"), ++ DMI_MATCH(DMI_BOARD_NAME, "SR700"), ++ }, ++ .callback = dmi_check_cb, ++ }, ++ { + .ident = "R530/R730", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), diff --git a/queue-3.0/platform-samsung_laptop-add-support-for-x520-machines.patch b/queue-3.0/platform-samsung_laptop-add-support-for-x520-machines.patch new file mode 100644 index 00000000000..1459491788e --- /dev/null +++ b/queue-3.0/platform-samsung_laptop-add-support-for-x520-machines.patch @@ -0,0 +1,37 @@ +From 7500eeb08a179e61a4219288c21407d63d1e9c64 Mon Sep 17 00:00:00 2001 +From: Tommaso Massimi +Date: Tue, 20 Sep 2011 09:16:09 -0700 +Subject: Platform: samsung_laptop: add support for X520 machines. + +From: Tommaso Massimi + +commit 7500eeb08a179e61a4219288c21407d63d1e9c64 upstream. + +my samsung laptop would be very happy if you add +these lines to the file drivers/platform/x86/samsung-laptop.c + +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Matthew Garrett + +--- + drivers/platform/x86/samsung-laptop.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/platform/x86/samsung-laptop.c ++++ b/drivers/platform/x86/samsung-laptop.c +@@ -685,6 +685,15 @@ static struct dmi_system_id __initdata s + }, + .callback = dmi_check_cb, + }, ++ { ++ .ident = "X520", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "X520"), ++ DMI_MATCH(DMI_BOARD_NAME, "X520"), ++ }, ++ .callback = dmi_check_cb, ++ }, + { }, + }; + MODULE_DEVICE_TABLE(dmi, samsung_dmi_table); diff --git a/queue-3.0/platform-samsung_laptop-fix-samsung-brightness-min-max.patch b/queue-3.0/platform-samsung_laptop-fix-samsung-brightness-min-max.patch new file mode 100644 index 00000000000..678d104294f --- /dev/null +++ b/queue-3.0/platform-samsung_laptop-fix-samsung-brightness-min-max.patch @@ -0,0 +1,59 @@ +From bee460be8c691c544e84ed678280ace6153104c6 Mon Sep 17 00:00:00 2001 +From: Jason Stubbs +Date: Tue, 20 Sep 2011 09:16:11 -0700 +Subject: platform: samsung_laptop: fix samsung brightness min/max + calculations + +From: Jason Stubbs + +commit bee460be8c691c544e84ed678280ace6153104c6 upstream. + +The min_brightness value of the sabi_config is incorrectly used in brightness +calculations. For the config where min_brightness = 1 and max_brightness = 8, +the user visible range should be 0 to 7 with hardware being set in the range +of 1 to 8. What is actually happening is that the user visible range is 0 to +8 with hardware being set in the range of -1 to 7. + +This patch fixes the above issue as well as a miscalculation that would occur +in the case of min_brightness > 1. + +Signed-off-by: Jason Stubbs +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Matthew Garrett + +--- + drivers/platform/x86/samsung-laptop.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +--- a/drivers/platform/x86/samsung-laptop.c ++++ b/drivers/platform/x86/samsung-laptop.c +@@ -370,15 +370,17 @@ static u8 read_brightness(void) + &sretval); + if (!retval) { + user_brightness = sretval.retval[0]; +- if (user_brightness != 0) ++ if (user_brightness > sabi_config->min_brightness) + user_brightness -= sabi_config->min_brightness; ++ else ++ user_brightness = 0; + } + return user_brightness; + } + + static void set_brightness(u8 user_brightness) + { +- u8 user_level = user_brightness - sabi_config->min_brightness; ++ u8 user_level = user_brightness + sabi_config->min_brightness; + + sabi_set_command(sabi_config->commands.set_brightness, user_level); + } +@@ -819,7 +821,8 @@ static int __init samsung_init(void) + /* create a backlight device to talk to this one */ + memset(&props, 0, sizeof(struct backlight_properties)); + props.type = BACKLIGHT_PLATFORM; +- props.max_brightness = sabi_config->max_brightness; ++ props.max_brightness = sabi_config->max_brightness - ++ sabi_config->min_brightness; + backlight_device = backlight_device_register("samsung", &sdev->dev, + NULL, &backlight_ops, + &props); diff --git a/queue-3.0/platform-samsung_laptop-samsung-backlight-for-r528-r728.patch b/queue-3.0/platform-samsung_laptop-samsung-backlight-for-r528-r728.patch new file mode 100644 index 00000000000..bcc692bc4e8 --- /dev/null +++ b/queue-3.0/platform-samsung_laptop-samsung-backlight-for-r528-r728.patch @@ -0,0 +1,38 @@ +From 093ed561648d43263c009ea88abab21a31cd4f1d Mon Sep 17 00:00:00 2001 +From: Smelov Andrey +Date: Tue, 20 Sep 2011 09:16:10 -0700 +Subject: Platform: samsung_laptop: samsung backlight for R528/R728 + +From: Smelov Andrey + +commit 093ed561648d43263c009ea88abab21a31cd4f1d upstream. + +patch works for me, but I need to add "acpi_backlight=vendor" to kernel +params + +Signed-off-by: Smelov Andrey +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Matthew Garrett + +--- + drivers/platform/x86/samsung-laptop.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +--- a/drivers/platform/x86/samsung-laptop.c ++++ b/drivers/platform/x86/samsung-laptop.c +@@ -694,6 +694,15 @@ static struct dmi_system_id __initdata s + }, + .callback = dmi_check_cb, + }, ++ { ++ .ident = "R528/R728", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "R528/R728"), ++ DMI_MATCH(DMI_BOARD_NAME, "R528/R728"), ++ }, ++ .callback = dmi_check_cb, ++ }, + { }, + }; + MODULE_DEVICE_TABLE(dmi, samsung_dmi_table); diff --git a/queue-3.0/qe-fhci-fixed-the-control-bug.patch b/queue-3.0/qe-fhci-fixed-the-control-bug.patch new file mode 100644 index 00000000000..3d61dd2f7c5 --- /dev/null +++ b/queue-3.0/qe-fhci-fixed-the-control-bug.patch @@ -0,0 +1,64 @@ +From 273d23574f9dacd9c63c80e7d63639a669aad441 Mon Sep 17 00:00:00 2001 +From: Jerry Huang +Date: Tue, 18 Oct 2011 13:09:48 +0800 +Subject: QE/FHCI: fixed the CONTROL bug + +From: Jerry Huang + +commit 273d23574f9dacd9c63c80e7d63639a669aad441 upstream. + +For USB CONTROL transaction, when the data length is zero, +the IN package is needed to finish this transaction in status stage. + +Signed-off-by: Jerry Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/fhci-sched.c | 19 +++++++++++++++---- + 1 file changed, 15 insertions(+), 4 deletions(-) + +--- a/drivers/usb/host/fhci-sched.c ++++ b/drivers/usb/host/fhci-sched.c +@@ -1,7 +1,7 @@ + /* + * Freescale QUICC Engine USB Host Controller Driver + * +- * Copyright (c) Freescale Semicondutor, Inc. 2006. ++ * Copyright (c) Freescale Semicondutor, Inc. 2006, 2011. + * Shlomi Gridish + * Jerry Huang + * Copyright (c) Logic Product Development, Inc. 2007 +@@ -810,9 +810,11 @@ void fhci_queue_urb(struct fhci_hcd *fhc + ed->dev_addr = usb_pipedevice(urb->pipe); + ed->max_pkt_size = usb_maxpacket(urb->dev, urb->pipe, + usb_pipeout(urb->pipe)); ++ /* setup stage */ + td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, FHCI_TA_SETUP, + USB_TD_TOGGLE_DATA0, urb->setup_packet, 8, 0, 0, true); + ++ /* data stage */ + if (data_len > 0) { + td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, + usb_pipeout(urb->pipe) ? FHCI_TA_OUT : +@@ -820,9 +822,18 @@ void fhci_queue_urb(struct fhci_hcd *fhc + USB_TD_TOGGLE_DATA1, data, data_len, 0, 0, + true); + } +- td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, +- usb_pipeout(urb->pipe) ? FHCI_TA_IN : FHCI_TA_OUT, +- USB_TD_TOGGLE_DATA1, data, 0, 0, 0, true); ++ ++ /* status stage */ ++ if (data_len > 0) ++ td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, ++ (usb_pipeout(urb->pipe) ? FHCI_TA_IN : ++ FHCI_TA_OUT), ++ USB_TD_TOGGLE_DATA1, data, 0, 0, 0, true); ++ else ++ td = fhci_td_fill(fhci, urb, urb_priv, ed, cnt++, ++ FHCI_TA_IN, ++ USB_TD_TOGGLE_DATA1, data, 0, 0, 0, true); ++ + urb_state = US_CTRL_SETUP; + break; + case FHCI_TF_ISO: diff --git a/queue-3.0/revert-nfs-ensure-that-writeback_single_inode-calls-write_inode-when-syncing.patch b/queue-3.0/revert-nfs-ensure-that-writeback_single_inode-calls-write_inode-when-syncing.patch new file mode 100644 index 00000000000..c9a44001fde --- /dev/null +++ b/queue-3.0/revert-nfs-ensure-that-writeback_single_inode-calls-write_inode-when-syncing.patch @@ -0,0 +1,47 @@ +From 59b7c05fffba030e5d9e72324691e2f99aa69b79 Mon Sep 17 00:00:00 2001 +From: Trond Myklebust +Date: Mon, 17 Oct 2011 18:22:55 -0700 +Subject: Revert "NFS: Ensure that writeback_single_inode() calls write_inode() when syncing" + +From: Trond Myklebust + +commit 59b7c05fffba030e5d9e72324691e2f99aa69b79 upstream. + +This reverts commit b80c3cb628f0ebc241b02e38dd028969fb8026a2. + +The reverted commit was rendered obsolete by a VFS fix: commit +5547e8aac6f71505d621a612de2fca0dd988b439 (writeback: Update dirty flags in +two steps). We now no longer need to worry about writeback_single_inode() +missing our marking the inode for COMMIT in 'do_writepages()' call. + +Reverting this patch, fixes a performance regression in which the inode +would continuously get queued to the dirty list, causing the writeback +code to unnecessarily try to send a COMMIT. + +Signed-off-by: Trond Myklebust +Tested-by: Simon Kirby +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfs/write.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/fs/nfs/write.c ++++ b/fs/nfs/write.c +@@ -428,7 +428,6 @@ static void + nfs_mark_request_dirty(struct nfs_page *req) + { + __set_page_dirty_nobuffers(req->wb_page); +- __mark_inode_dirty(req->wb_page->mapping->host, I_DIRTY_DATASYNC); + } + + #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) +@@ -762,6 +761,8 @@ int nfs_updatepage(struct file *file, st + status = nfs_writepage_setup(ctx, page, offset, count); + if (status < 0) + nfs_set_pageerror(page); ++ else ++ __set_page_dirty_nobuffers(page); + + dprintk("NFS: nfs_updatepage returns %d (isize %lld)\n", + status, (long long)i_size_read(inode)); diff --git a/queue-3.0/series b/queue-3.0/series index a2316ebf452..1ee76d79f1d 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -60,3 +60,18 @@ ath9k_hw-fix-magnitude-phase-coeff-correction.patch ath9k_htc-add-avm-fritz-wlan-11n-v2-support.patch ath9k_hw-fix-number-of-gpio-pins-for-ar9287-9300.patch ath9k-disable-unnecessary-phy-error-reporting.patch +hid-acrux-fix-enabling-force-feedback-support.patch +qe-fhci-fixed-the-control-bug.patch +update-email-address-for-stable-patch-submission.patch +xen-pcifront-update-warning-comment-to-use-e820_host.patch +xen-swiotlb-fix-wrong-panic.patch +kobj_uevent-ignore-if-some-listeners-cannot-handle-message.patch +caif-fix-bug-with-network-namespaces.patch +platform-samsung_laptop-add-dmi-information-for-samsung.patch +platform-samsung_laptop-add-support-for-x520-machines.patch +platform-samsung_laptop-samsung-backlight-for-r528-r728.patch +platform-samsung_laptop-fix-samsung-brightness-min-max.patch +platform-fix-error-path-in-samsung-laptop-init.patch +kmod-prevent-kmod_loop_msg-overflow-in-__request_module.patch +revert-nfs-ensure-that-writeback_single_inode-calls-write_inode-when-syncing.patch +nfs-don-t-redirty-inode-when-ncommit-0-in.patch diff --git a/queue-3.0/update-email-address-for-stable-patch-submission.patch b/queue-3.0/update-email-address-for-stable-patch-submission.patch new file mode 100644 index 00000000000..6a23fbbf78b --- /dev/null +++ b/queue-3.0/update-email-address-for-stable-patch-submission.patch @@ -0,0 +1,51 @@ +From 5fa224295f0e0358c8bc0e5390702338df889def Mon Sep 17 00:00:00 2001 +From: Josh Boyer +Date: Mon, 17 Oct 2011 21:16:39 -0400 +Subject: Update email address for stable patch submission + +From: Josh Boyer + +commit 5fa224295f0e0358c8bc0e5390702338df889def upstream. + +The stable@kernel.org email address has been replaced with the +stable@vger.kernel.org mailing list. Change the stable kernel rules to +reference the new list instead of the semi-defunct email alias. + +Signed-off-by: Josh Boyer +Signed-off-by: Greg Kroah-Hartman + +--- + Documentation/stable_kernel_rules.txt | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +--- a/Documentation/stable_kernel_rules.txt ++++ b/Documentation/stable_kernel_rules.txt +@@ -24,10 +24,10 @@ Rules on what kind of patches are accept + Procedure for submitting patches to the -stable tree: + + - Send the patch, after verifying that it follows the above rules, to +- stable@kernel.org. You must note the upstream commit ID in the changelog +- of your submission. ++ stable@vger.kernel.org. You must note the upstream commit ID in the ++ changelog of your submission. + - To have the patch automatically included in the stable tree, add the tag +- Cc: stable@kernel.org ++ Cc: stable@vger.kernel.org + in the sign-off area. Once the patch is merged it will be applied to + the stable tree without anything else needing to be done by the author + or subsystem maintainer. +@@ -35,10 +35,10 @@ Procedure for submitting patches to the + cherry-picked than this can be specified in the following format in + the sign-off area: + +- Cc: # .32.x: a1f84a3: sched: Check for idle +- Cc: # .32.x: 1b9508f: sched: Rate-limit newidle +- Cc: # .32.x: fd21073: sched: Fix affinity logic +- Cc: # .32.x ++ Cc: # .32.x: a1f84a3: sched: Check for idle ++ Cc: # .32.x: 1b9508f: sched: Rate-limit newidle ++ Cc: # .32.x: fd21073: sched: Fix affinity logic ++ Cc: # .32.x + Signed-off-by: Ingo Molnar + + The tag sequence has the meaning of: diff --git a/queue-3.0/xen-pcifront-update-warning-comment-to-use-e820_host.patch b/queue-3.0/xen-pcifront-update-warning-comment-to-use-e820_host.patch new file mode 100644 index 00000000000..83889dcc14c --- /dev/null +++ b/queue-3.0/xen-pcifront-update-warning-comment-to-use-e820_host.patch @@ -0,0 +1,47 @@ +From 917e3e65c35459d52f0d0b890aa5df0cad07a051 Mon Sep 17 00:00:00 2001 +From: Konrad Rzeszutek Wilk +Date: Fri, 22 Jul 2011 12:18:43 -0400 +Subject: xen-pcifront: Update warning comment to use 'e820_host' + option. + +From: Konrad Rzeszutek Wilk + +commit 917e3e65c35459d52f0d0b890aa5df0cad07a051 upstream. + +With Xen changeset 23428 "libxl: Add 'e820_host' option to config file" +the E820 as seen from the host can now be passed into the guest. +This means that a PV guest can now: + - Use the correct PCI I/O gap. Before these patches, Linux guest would + boot up and would tell: + [ 0.000000] Allocating PCI resources starting at 40000000 (gap: 40000000:c0000000) + while in actuality the PCI I/O gap should have been: + [ 0.000000] Allocating PCI resources starting at b0000000 (gap: b0000000:4c000000) + + - The PV domain with PCI devices was limited to 3GB. It now can be booted + with 4GB, 8GB, or whatever number you want. The PCI devices will now _not_ conflict + with System RAM. Meaning the drivers can load. + +CC: Jesse Barnes +CC: linux-pci@vger.kernel.org +[v2: Made the string less broken up. Suggested by Joe Perches] +Signed-off-by: Konrad Rzeszutek Wilk +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/pci/xen-pcifront.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +--- a/drivers/pci/xen-pcifront.c ++++ b/drivers/pci/xen-pcifront.c +@@ -400,9 +400,8 @@ static int pcifront_claim_resource(struc + dev_info(&pdev->xdev->dev, "claiming resource %s/%d\n", + pci_name(dev), i); + if (pci_claim_resource(dev, i)) { +- dev_err(&pdev->xdev->dev, "Could not claim " +- "resource %s/%d! Device offline. Try " +- "giving less than 4GB to domain.\n", ++ dev_err(&pdev->xdev->dev, "Could not claim resource %s/%d! " ++ "Device offline. Try using e820_host=1 in the guest config.\n", + pci_name(dev), i); + } + } diff --git a/queue-3.0/xen-swiotlb-fix-wrong-panic.patch b/queue-3.0/xen-swiotlb-fix-wrong-panic.patch new file mode 100644 index 00000000000..27ce7e5a2c1 --- /dev/null +++ b/queue-3.0/xen-swiotlb-fix-wrong-panic.patch @@ -0,0 +1,45 @@ +From ab2a47bd242d6cdcf6b2b64797f271c6f0a6d338 Mon Sep 17 00:00:00 2001 +From: Konrad Rzeszutek Wilk +Date: Fri, 22 Jul 2011 12:51:48 -0400 +Subject: xen-swiotlb: Fix wrong panic. + +From: Konrad Rzeszutek Wilk + +commit ab2a47bd242d6cdcf6b2b64797f271c6f0a6d338 upstream. + +Propagate the baremetal git commit "swiotlb: fix wrong panic" +(fba99fa38b023224680308a482e12a0eca87e4e1) in the Xen-SWIOTLB version. +wherein swiotlb's map_page wrongly calls panic() when it can't find +a buffer fit for device's dma mask. It should return an error instead. + +Devices with an odd dma mask (i.e. under 4G) like b44 network card hit +this bug (the system crashes): + +http://marc.info/?l=linux-kernel&m=129648943830106&w=2 + +If xen-swiotlb returns an error, b44 driver can use the own bouncing +mechanism. + +Signed-off-by: Konrad Rzeszutek Wilk +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/xen/swiotlb-xen.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/xen/swiotlb-xen.c ++++ b/drivers/xen/swiotlb-xen.c +@@ -278,9 +278,10 @@ dma_addr_t xen_swiotlb_map_page(struct d + /* + * Ensure that the address returned is DMA'ble + */ +- if (!dma_capable(dev, dev_addr, size)) +- panic("map_single: bounce buffer is not DMA'ble"); +- ++ if (!dma_capable(dev, dev_addr, size)) { ++ swiotlb_tbl_unmap_single(dev, map, size, dir); ++ dev_addr = 0; ++ } + return dev_addr; + } + EXPORT_SYMBOL_GPL(xen_swiotlb_map_page); -- 2.47.3