From: Greg Kroah-Hartman Date: Mon, 8 Oct 2012 16:20:47 +0000 (-0700) Subject: 3.5-stable patches X-Git-Tag: v3.0.46~57 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6dc831359627bd2f8574e6a105173a56db4e47d2;p=thirdparty%2Fkernel%2Fstable-queue.git 3.5-stable patches added patches: arm-7548-1-include-linux-sched.h-in-syscall.h.patch em28xx-make-all-em28xx-extensions-to-be-initialized-asynchronously.patch intel-iommu-default-to-non-coherent-for-domains-unattached-to-iommus.patch media-gspca_pac7302-add-support-for-device-1ae7-2001-speedlink-snappy-microphone-sl-6825-sbk.patch media-rc-ite-cir-initialise-ite_dev-rdev-earlier.patch --- diff --git a/queue-3.5/arm-7548-1-include-linux-sched.h-in-syscall.h.patch b/queue-3.5/arm-7548-1-include-linux-sched.h-in-syscall.h.patch new file mode 100644 index 00000000000..e0672930ec9 --- /dev/null +++ b/queue-3.5/arm-7548-1-include-linux-sched.h-in-syscall.h.patch @@ -0,0 +1,40 @@ +From 8ef102c6b4bc996ff96ca52b34775fe931ec90c9 Mon Sep 17 00:00:00 2001 +From: Wade Farnsworth +Date: Tue, 2 Oct 2012 17:08:30 +0100 +Subject: ARM: 7548/1: include linux/sched.h in syscall.h + +From: Wade Farnsworth + +commit 8ef102c6b4bc996ff96ca52b34775fe931ec90c9 upstream. + +The syscall tracing patch introduces a compile bug in lttng-modules +when the latter calls syscall_get_nr(), similar to the following: + +/arch/arm/include/asm/syscall.h:21:2: error: implicit declaration of function 'task_thread_info' [-Werror=implicit-function-declaration] + +The issue is that we are using task_thread_info() in the +syscall_get_nr() function in asm/syscall.h, but not explicitly +including sched.h from this file, so we can expect this bug might +surface any time that syscall_get_nr() is called. + +Explicitly including sched.h solves the problem. + +Signed-off-by: Wade Farnsworth +Acked-by: Will Deacon +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman + +--- + arch/arm/include/asm/syscall.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/include/asm/syscall.h ++++ b/arch/arm/include/asm/syscall.h +@@ -8,6 +8,7 @@ + #define _ASM_ARM_SYSCALL_H + + #include ++#include + + extern const unsigned long sys_call_table[]; + diff --git a/queue-3.5/em28xx-make-all-em28xx-extensions-to-be-initialized-asynchronously.patch b/queue-3.5/em28xx-make-all-em28xx-extensions-to-be-initialized-asynchronously.patch new file mode 100644 index 00000000000..68f553f5c68 --- /dev/null +++ b/queue-3.5/em28xx-make-all-em28xx-extensions-to-be-initialized-asynchronously.patch @@ -0,0 +1,87 @@ +From 6ae5e060840589f567c1837613e8a9d34fc9188a Mon Sep 17 00:00:00 2001 +From: Mauro Carvalho Chehab +Date: Tue, 2 Oct 2012 15:35:27 -0300 +Subject: em28xx: Make all em28xx extensions to be initialized asynchronously + +From: Mauro Carvalho Chehab + +commit 6ae5e060840589f567c1837613e8a9d34fc9188a upstream. + +em28xx-dvb, em28xx-alsa and em28xx-ir are typically initialized +asyncrhronously. The exception for it is when those modules +are loaded before em28xx (or before an em28xx card insertion) or +when they're built in. + +Make the extentions to always load asynchronously. That allows +having all DVB firmwares loaded synchronously with udev-182. + +Antti tested it with the following hardware: + Hauppauge WinTV HVR 930C + MaxMedia UB425-TC + PCTV QuatroStick nano (520e) + +Tested-by: Antti Palosaari +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/video/em28xx/em28xx-cards.c | 22 ++++++++++------------ + 1 file changed, 10 insertions(+), 12 deletions(-) + +--- a/drivers/media/video/em28xx/em28xx-cards.c ++++ b/drivers/media/video/em28xx/em28xx-cards.c +@@ -2880,12 +2880,20 @@ static void em28xx_card_setup(struct em2 + } + + +-#if defined(CONFIG_MODULES) && defined(MODULE) + static void request_module_async(struct work_struct *work) + { + struct em28xx *dev = container_of(work, + struct em28xx, request_module_wk); + ++ /* ++ * The em28xx extensions can be modules or builtin. If the ++ * modules are already loaded or are built in, those extensions ++ * can be initialised right now. Otherwise, the module init ++ * code will do it. ++ */ ++ em28xx_init_extension(dev); ++ ++#if defined(CONFIG_MODULES) && defined(MODULE) + if (dev->has_audio_class) + request_module("snd-usb-audio"); + else if (dev->has_alsa_audio) +@@ -2895,6 +2903,7 @@ static void request_module_async(struct + request_module("em28xx-dvb"); + if (dev->board.ir_codes && !disable_ir) + request_module("em28xx-rc"); ++#endif /* CONFIG_MODULES */ + } + + static void request_modules(struct em28xx *dev) +@@ -2907,10 +2916,6 @@ static void flush_request_modules(struct + { + flush_work_sync(&dev->request_module_wk); + } +-#else +-#define request_modules(dev) +-#define flush_request_modules(dev) +-#endif /* CONFIG_MODULES */ + + /* + * em28xx_release_resources() +@@ -3329,13 +3334,6 @@ static int em28xx_usb_probe(struct usb_i + */ + mutex_unlock(&dev->lock); + +- /* +- * These extensions can be modules. If the modules are already +- * loaded then we can initialise the device now, otherwise we +- * will initialise it when the modules load instead. +- */ +- em28xx_init_extension(dev); +- + return 0; + + unlock_and_free: diff --git a/queue-3.5/intel-iommu-default-to-non-coherent-for-domains-unattached-to-iommus.patch b/queue-3.5/intel-iommu-default-to-non-coherent-for-domains-unattached-to-iommus.patch new file mode 100644 index 00000000000..c41fad8adf3 --- /dev/null +++ b/queue-3.5/intel-iommu-default-to-non-coherent-for-domains-unattached-to-iommus.patch @@ -0,0 +1,52 @@ +From 2e12bc29fc5a12242d68e11875db3dd58efad9ff Mon Sep 17 00:00:00 2001 +From: Alex Williamson +Date: Fri, 11 Nov 2011 17:26:44 -0700 +Subject: intel-iommu: Default to non-coherent for domains unattached to iommus + +From: Alex Williamson + +commit 2e12bc29fc5a12242d68e11875db3dd58efad9ff upstream. + +domain_update_iommu_coherency() currently defaults to setting domains +as coherent when the domain is not attached to any iommus. This +allows for a window in domain_context_mapping_one() where such a +domain can update context entries non-coherently, and only after +update the domain capability to clear iommu_coherency. + +This can be seen using KVM device assignment on VT-d systems that +do not support coherency in the ecap register. When a device is +added to a guest, a domain is created (iommu_coherency = 0), the +device is attached, and ranges are mapped. If we then hot unplug +the device, the coherency is updated and set to the default (1) +since no iommus are attached to the domain. A subsequent attach +of a device makes use of the same dmar domain (now marked coherent) +updates context entries with coherency enabled, and only disables +coherency as the last step in the process. + +To fix this, switch domain_update_iommu_coherency() to use the +safer, non-coherent default for domains not attached to iommus. + +Signed-off-by: Alex Williamson +Tested-by: Donald Dutile +Acked-by: Donald Dutile +Acked-by: Chris Wright +Signed-off-by: Joerg Roedel +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/iommu/intel-iommu.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/iommu/intel-iommu.c ++++ b/drivers/iommu/intel-iommu.c +@@ -589,7 +589,9 @@ static void domain_update_iommu_coherenc + { + int i; + +- domain->iommu_coherency = 1; ++ i = find_first_bit(domain->iommu_bmp, g_num_of_iommus); ++ ++ domain->iommu_coherency = i < g_num_of_iommus ? 1 : 0; + + for_each_set_bit(i, domain->iommu_bmp, g_num_of_iommus) { + if (!ecap_coherent(g_iommus[i]->ecap)) { diff --git a/queue-3.5/media-gspca_pac7302-add-support-for-device-1ae7-2001-speedlink-snappy-microphone-sl-6825-sbk.patch b/queue-3.5/media-gspca_pac7302-add-support-for-device-1ae7-2001-speedlink-snappy-microphone-sl-6825-sbk.patch new file mode 100644 index 00000000000..d81647cb087 --- /dev/null +++ b/queue-3.5/media-gspca_pac7302-add-support-for-device-1ae7-2001-speedlink-snappy-microphone-sl-6825-sbk.patch @@ -0,0 +1,28 @@ +From 97d2fbf501e3cf105ac957086c7e40e62e15cdf8 Mon Sep 17 00:00:00 2001 +From: Frank Schäfer +Date: Sun, 9 Sep 2012 15:02:19 -0300 +Subject: media: gspca_pac7302: add support for device 1ae7:2001 Speedlink Snappy Microphone SL-6825-SBK + +From: Frank Schäfer + +commit 97d2fbf501e3cf105ac957086c7e40e62e15cdf8 upstream. + +Signed-off-by: Frank Schäfer +Signed-off-by: Hans de Goede +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/video/gspca/pac7302.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/media/video/gspca/pac7302.c ++++ b/drivers/media/video/gspca/pac7302.c +@@ -978,6 +978,7 @@ static const struct usb_device_id device + {USB_DEVICE(0x093a, 0x262a)}, + {USB_DEVICE(0x093a, 0x262c)}, + {USB_DEVICE(0x145f, 0x013c)}, ++ {USB_DEVICE(0x1ae7, 0x2001)}, /* SpeedLink Snappy Mic SL-6825-SBK */ + {} + }; + MODULE_DEVICE_TABLE(usb, device_table); diff --git a/queue-3.5/media-rc-ite-cir-initialise-ite_dev-rdev-earlier.patch b/queue-3.5/media-rc-ite-cir-initialise-ite_dev-rdev-earlier.patch new file mode 100644 index 00000000000..0508ef1c809 --- /dev/null +++ b/queue-3.5/media-rc-ite-cir-initialise-ite_dev-rdev-earlier.patch @@ -0,0 +1,43 @@ +From 4b961180ef275035b1538317ffd0e21e80e63e77 Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Sun, 19 Aug 2012 19:32:27 -0300 +Subject: media: rc: ite-cir: Initialise ite_dev::rdev earlier + +From: Ben Hutchings + +commit 4b961180ef275035b1538317ffd0e21e80e63e77 upstream. + +ite_dev::rdev is currently initialised in ite_probe() after +rc_register_device() returns. If a newly registered device is opened +quickly enough, we may enable interrupts and try to use ite_dev::rdev +before it has been initialised. Move it up to the earliest point we +can, right after calling rc_allocate_device(). + +Reported-and-tested-by: YunQiang Su + +Signed-off-by: Ben Hutchings +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/rc/ite-cir.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/media/rc/ite-cir.c ++++ b/drivers/media/rc/ite-cir.c +@@ -1473,6 +1473,7 @@ static int ite_probe(struct pnp_dev *pde + rdev = rc_allocate_device(); + if (!rdev) + goto failure; ++ itdev->rdev = rdev; + + ret = -ENODEV; + +@@ -1604,7 +1605,6 @@ static int ite_probe(struct pnp_dev *pde + if (ret) + goto failure3; + +- itdev->rdev = rdev; + ite_pr(KERN_NOTICE, "driver has been successfully loaded\n"); + + return 0; diff --git a/queue-3.5/series b/queue-3.5/series index e6b0fe222c6..f628fe70b7b 100644 --- a/queue-3.5/series +++ b/queue-3.5/series @@ -3,3 +3,8 @@ mn10300-only-add-mmem-funcs-to-kbuild_cflags-if-gcc-supports-it.patch kbuild-make-fix-if_changed-when-command-contains-backslashes.patch kbuild-fix-gcc-x-syntax.patch slab-fix-the-deadlock-issue-on-l3-alien-lock.patch +intel-iommu-default-to-non-coherent-for-domains-unattached-to-iommus.patch +arm-7548-1-include-linux-sched.h-in-syscall.h.patch +em28xx-make-all-em28xx-extensions-to-be-initialized-asynchronously.patch +media-rc-ite-cir-initialise-ite_dev-rdev-earlier.patch +media-gspca_pac7302-add-support-for-device-1ae7-2001-speedlink-snappy-microphone-sl-6825-sbk.patch