From: Greg Kroah-Hartman Date: Mon, 23 Mar 2009 21:56:38 +0000 (-0700) Subject: Linux 2.6.28.9 X-Git-Tag: v2.6.28.9^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=52821f0d70d9ed0d19713d68999a26f56b88a308;p=thirdparty%2Fkernel%2Fstable-queue.git Linux 2.6.28.9 --- diff --git a/queue-2.6.28/add-fwrapv-to-gcc-cflags.patch b/releases/2.6.28.9/add-fwrapv-to-gcc-cflags.patch similarity index 100% rename from queue-2.6.28/add-fwrapv-to-gcc-cflags.patch rename to releases/2.6.28.9/add-fwrapv-to-gcc-cflags.patch diff --git a/queue-2.6.28/alsa-fix-vunmap-and-free-order-in-snd_free_sgbuf_pages.patch b/releases/2.6.28.9/alsa-fix-vunmap-and-free-order-in-snd_free_sgbuf_pages.patch similarity index 100% rename from queue-2.6.28/alsa-fix-vunmap-and-free-order-in-snd_free_sgbuf_pages.patch rename to releases/2.6.28.9/alsa-fix-vunmap-and-free-order-in-snd_free_sgbuf_pages.patch diff --git a/queue-2.6.28/alsa-hda-fix-dma-mask-for-ati-controllers.patch b/releases/2.6.28.9/alsa-hda-fix-dma-mask-for-ati-controllers.patch similarity index 100% rename from queue-2.6.28/alsa-hda-fix-dma-mask-for-ati-controllers.patch rename to releases/2.6.28.9/alsa-hda-fix-dma-mask-for-ati-controllers.patch diff --git a/queue-2.6.28/alsa-hda-workaround-for-buggy-dma-position-on-ati-controllers.patch b/releases/2.6.28.9/alsa-hda-workaround-for-buggy-dma-position-on-ati-controllers.patch similarity index 100% rename from queue-2.6.28/alsa-hda-workaround-for-buggy-dma-position-on-ati-controllers.patch rename to releases/2.6.28.9/alsa-hda-workaround-for-buggy-dma-position-on-ati-controllers.patch diff --git a/queue-2.6.28/alsa-mixart-fix-lock-imbalance.patch b/releases/2.6.28.9/alsa-mixart-fix-lock-imbalance.patch similarity index 100% rename from queue-2.6.28/alsa-mixart-fix-lock-imbalance.patch rename to releases/2.6.28.9/alsa-mixart-fix-lock-imbalance.patch diff --git a/queue-2.6.28/alsa-opl3sa2-fix-null-dereference-when-suspending-snd_opl3sa2.patch b/releases/2.6.28.9/alsa-opl3sa2-fix-null-dereference-when-suspending-snd_opl3sa2.patch similarity index 100% rename from queue-2.6.28/alsa-opl3sa2-fix-null-dereference-when-suspending-snd_opl3sa2.patch rename to releases/2.6.28.9/alsa-opl3sa2-fix-null-dereference-when-suspending-snd_opl3sa2.patch diff --git a/queue-2.6.28/alsa-pcm_oss-fix-locking-typo.patch b/releases/2.6.28.9/alsa-pcm_oss-fix-locking-typo.patch similarity index 100% rename from queue-2.6.28/alsa-pcm_oss-fix-locking-typo.patch rename to releases/2.6.28.9/alsa-pcm_oss-fix-locking-typo.patch diff --git a/queue-2.6.28/ata_piix-add-workaround-for-samsung-db-p70.patch b/releases/2.6.28.9/ata_piix-add-workaround-for-samsung-db-p70.patch similarity index 100% rename from queue-2.6.28/ata_piix-add-workaround-for-samsung-db-p70.patch rename to releases/2.6.28.9/ata_piix-add-workaround-for-samsung-db-p70.patch diff --git a/queue-2.6.28/build-fix-for-__early_pfn_to_nid-undefined-link-error.patch b/releases/2.6.28.9/build-fix-for-__early_pfn_to_nid-undefined-link-error.patch similarity index 100% rename from queue-2.6.28/build-fix-for-__early_pfn_to_nid-undefined-link-error.patch rename to releases/2.6.28.9/build-fix-for-__early_pfn_to_nid-undefined-link-error.patch diff --git a/queue-2.6.28/dm-crypt-fix-kcryptd_async_done-parameter.patch b/releases/2.6.28.9/dm-crypt-fix-kcryptd_async_done-parameter.patch similarity index 100% rename from queue-2.6.28/dm-crypt-fix-kcryptd_async_done-parameter.patch rename to releases/2.6.28.9/dm-crypt-fix-kcryptd_async_done-parameter.patch diff --git a/queue-2.6.28/dm-crypt-wait-for-endio-to-complete-before-destruction.patch b/releases/2.6.28.9/dm-crypt-wait-for-endio-to-complete-before-destruction.patch similarity index 100% rename from queue-2.6.28/dm-crypt-wait-for-endio-to-complete-before-destruction.patch rename to releases/2.6.28.9/dm-crypt-wait-for-endio-to-complete-before-destruction.patch diff --git a/queue-2.6.28/dm-io-respect-bio_max_pages-limit.patch b/releases/2.6.28.9/dm-io-respect-bio_max_pages-limit.patch similarity index 100% rename from queue-2.6.28/dm-io-respect-bio_max_pages-limit.patch rename to releases/2.6.28.9/dm-io-respect-bio_max_pages-limit.patch diff --git a/queue-2.6.28/dm-ioctl-validate-name-length-when-renaming.patch b/releases/2.6.28.9/dm-ioctl-validate-name-length-when-renaming.patch similarity index 100% rename from queue-2.6.28/dm-ioctl-validate-name-length-when-renaming.patch rename to releases/2.6.28.9/dm-ioctl-validate-name-length-when-renaming.patch diff --git a/queue-2.6.28/drm-i915-don-t-allow-objects-to-get-bound-while-vt-switched.patch b/releases/2.6.28.9/drm-i915-don-t-allow-objects-to-get-bound-while-vt-switched.patch similarity index 100% rename from queue-2.6.28/drm-i915-don-t-allow-objects-to-get-bound-while-vt-switched.patch rename to releases/2.6.28.9/drm-i915-don-t-allow-objects-to-get-bound-while-vt-switched.patch diff --git a/queue-2.6.28/drm-i915-don-t-double-unpin-buffers-if-we-take-a-signal-in-evict_everything.patch b/releases/2.6.28.9/drm-i915-don-t-double-unpin-buffers-if-we-take-a-signal-in-evict_everything.patch similarity index 100% rename from queue-2.6.28/drm-i915-don-t-double-unpin-buffers-if-we-take-a-signal-in-evict_everything.patch rename to releases/2.6.28.9/drm-i915-don-t-double-unpin-buffers-if-we-take-a-signal-in-evict_everything.patch diff --git a/queue-2.6.28/drm-i915-don-t-enable-vblanks-on-disabled-pipes.patch b/releases/2.6.28.9/drm-i915-don-t-enable-vblanks-on-disabled-pipes.patch similarity index 100% rename from queue-2.6.28/drm-i915-don-t-enable-vblanks-on-disabled-pipes.patch rename to releases/2.6.28.9/drm-i915-don-t-enable-vblanks-on-disabled-pipes.patch diff --git a/queue-2.6.28/drm-i915-don-t-print-to-dmesg-when-taking-signal-during-object_pin.patch b/releases/2.6.28.9/drm-i915-don-t-print-to-dmesg-when-taking-signal-during-object_pin.patch similarity index 100% rename from queue-2.6.28/drm-i915-don-t-print-to-dmesg-when-taking-signal-during-object_pin.patch rename to releases/2.6.28.9/drm-i915-don-t-print-to-dmesg-when-taking-signal-during-object_pin.patch diff --git a/queue-2.6.28/drm-i915-set-vblank-enabled-flag-correctly-across-irq-install-uninstall.patch b/releases/2.6.28.9/drm-i915-set-vblank-enabled-flag-correctly-across-irq-install-uninstall.patch similarity index 100% rename from queue-2.6.28/drm-i915-set-vblank-enabled-flag-correctly-across-irq-install-uninstall.patch rename to releases/2.6.28.9/drm-i915-set-vblank-enabled-flag-correctly-across-irq-install-uninstall.patch diff --git a/releases/2.6.28.9/ecryptfs-allocate-a-variable-number-of-pages-for-file-headers.patch b/releases/2.6.28.9/ecryptfs-allocate-a-variable-number-of-pages-for-file-headers.patch new file mode 100644 index 00000000000..0efe8466a74 --- /dev/null +++ b/releases/2.6.28.9/ecryptfs-allocate-a-variable-number-of-pages-for-file-headers.patch @@ -0,0 +1,146 @@ +From 8faece5f906725c10e7a1f6caf84452abadbdc7b Mon Sep 17 00:00:00 2001 +From: Tyler Hicks +Date: Fri, 20 Mar 2009 01:25:09 -0500 +Subject: eCryptfs: Allocate a variable number of pages for file headers + +From: Tyler Hicks + +commit 8faece5f906725c10e7a1f6caf84452abadbdc7b upstream. + +When allocating the memory used to store the eCryptfs header contents, a +single, zeroed page was being allocated with get_zeroed_page(). +However, the size of an eCryptfs header is either PAGE_CACHE_SIZE or +ECRYPTFS_MINIMUM_HEADER_EXTENT_SIZE (8192), whichever is larger, and is +stored in the file's private_data->crypt_stat->num_header_bytes_at_front +field. + +ecryptfs_write_metadata_to_contents() was using +num_header_bytes_at_front to decide how many bytes should be written to +the lower filesystem for the file header. Unfortunately, at least 8K +was being written from the page, despite the chance of the single, +zeroed page being smaller than 8K. This resulted in random areas of +kernel memory being written between the 0x1000 and 0x1FFF bytes offsets +in the eCryptfs file headers if PAGE_SIZE was 4K. + +This patch allocates a variable number of pages, calculated with +num_header_bytes_at_front, and passes the number of allocated pages +along to ecryptfs_write_metadata_to_contents(). + +Thanks to Florian Streibelt for reporting the data leak and working with +me to find the problem. 2.6.28 is the only kernel release with this +vulnerability. Corresponds to CVE-2009-0787 + +Signed-off-by: Tyler Hicks +Acked-by: Dustin Kirkland +Reviewed-by: Eric Sandeen +Reviewed-by: Eugene Teo +Cc: dann frazier +Cc: Serge E. Hallyn +Cc: Florian Streibelt +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + fs/ecryptfs/crypto.c | 39 ++++++++++++++++++++++++++------------- + 1 file changed, 26 insertions(+), 13 deletions(-) + +--- a/fs/ecryptfs/crypto.c ++++ b/fs/ecryptfs/crypto.c +@@ -1310,14 +1310,13 @@ static int ecryptfs_write_headers_virt(c + } + + static int +-ecryptfs_write_metadata_to_contents(struct ecryptfs_crypt_stat *crypt_stat, +- struct dentry *ecryptfs_dentry, +- char *virt) ++ecryptfs_write_metadata_to_contents(struct dentry *ecryptfs_dentry, ++ char *virt, size_t virt_len) + { + int rc; + + rc = ecryptfs_write_lower(ecryptfs_dentry->d_inode, virt, +- 0, crypt_stat->num_header_bytes_at_front); ++ 0, virt_len); + if (rc) + printk(KERN_ERR "%s: Error attempting to write header " + "information to lower file; rc = [%d]\n", __func__, +@@ -1327,7 +1326,6 @@ ecryptfs_write_metadata_to_contents(stru + + static int + ecryptfs_write_metadata_to_xattr(struct dentry *ecryptfs_dentry, +- struct ecryptfs_crypt_stat *crypt_stat, + char *page_virt, size_t size) + { + int rc; +@@ -1337,6 +1335,17 @@ ecryptfs_write_metadata_to_xattr(struct + return rc; + } + ++static unsigned long ecryptfs_get_zeroed_pages(gfp_t gfp_mask, ++ unsigned int order) ++{ ++ struct page *page; ++ ++ page = alloc_pages(gfp_mask | __GFP_ZERO, order); ++ if (page) ++ return (unsigned long) page_address(page); ++ return 0; ++} ++ + /** + * ecryptfs_write_metadata + * @ecryptfs_dentry: The eCryptfs dentry +@@ -1353,7 +1362,9 @@ int ecryptfs_write_metadata(struct dentr + { + struct ecryptfs_crypt_stat *crypt_stat = + &ecryptfs_inode_to_private(ecryptfs_dentry->d_inode)->crypt_stat; ++ unsigned int order; + char *virt; ++ size_t virt_len; + size_t size = 0; + int rc = 0; + +@@ -1369,33 +1380,35 @@ int ecryptfs_write_metadata(struct dentr + rc = -EINVAL; + goto out; + } ++ virt_len = crypt_stat->num_header_bytes_at_front; ++ order = get_order(virt_len); + /* Released in this function */ +- virt = (char *)get_zeroed_page(GFP_KERNEL); ++ virt = (char *)ecryptfs_get_zeroed_pages(GFP_KERNEL, order); + if (!virt) { + printk(KERN_ERR "%s: Out of memory\n", __func__); + rc = -ENOMEM; + goto out; + } +- rc = ecryptfs_write_headers_virt(virt, PAGE_CACHE_SIZE, &size, +- crypt_stat, ecryptfs_dentry); ++ rc = ecryptfs_write_headers_virt(virt, virt_len, &size, crypt_stat, ++ ecryptfs_dentry); + if (unlikely(rc)) { + printk(KERN_ERR "%s: Error whilst writing headers; rc = [%d]\n", + __func__, rc); + goto out_free; + } + if (crypt_stat->flags & ECRYPTFS_METADATA_IN_XATTR) +- rc = ecryptfs_write_metadata_to_xattr(ecryptfs_dentry, +- crypt_stat, virt, size); ++ rc = ecryptfs_write_metadata_to_xattr(ecryptfs_dentry, virt, ++ size); + else +- rc = ecryptfs_write_metadata_to_contents(crypt_stat, +- ecryptfs_dentry, virt); ++ rc = ecryptfs_write_metadata_to_contents(ecryptfs_dentry, virt, ++ virt_len); + if (rc) { + printk(KERN_ERR "%s: Error writing metadata out to lower file; " + "rc = [%d]\n", __func__, rc); + goto out_free; + } + out_free: +- free_page((unsigned long)virt); ++ free_pages((unsigned long)virt, order); + out: + return rc; + } diff --git a/queue-2.6.28/eventfd-remove-fput-call-from-possible-irq-context.patch b/releases/2.6.28.9/eventfd-remove-fput-call-from-possible-irq-context.patch similarity index 100% rename from queue-2.6.28/eventfd-remove-fput-call-from-possible-irq-context.patch rename to releases/2.6.28.9/eventfd-remove-fput-call-from-possible-irq-context.patch diff --git a/queue-2.6.28/fix-misreporting-of-cores-as-hyperthreads-for-q9550.patch b/releases/2.6.28.9/fix-misreporting-of-cores-as-hyperthreads-for-q9550.patch similarity index 100% rename from queue-2.6.28/fix-misreporting-of-cores-as-hyperthreads-for-q9550.patch rename to releases/2.6.28.9/fix-misreporting-of-cores-as-hyperthreads-for-q9550.patch diff --git a/releases/2.6.28.9/mbox b/releases/2.6.28.9/mbox new file mode 100644 index 00000000000..225ba4d2f47 --- /dev/null +++ b/releases/2.6.28.9/mbox @@ -0,0 +1,3887 @@ +From gregkh@mini.kroah.org Fri Mar 20 15:29:23 2009 +Message-Id: <20090320222922.939065975@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:11 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Tony Luck +Subject: [patch 01/43] [IA64] Build fix for __early_pfn_to_nid() undefined link error +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=build-fix-for-__early_pfn_to_nid-undefined-link-error.patch +Content-Length: 925 +Lines: 35 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Tony Luck + +commit 334f85b647bc46ff4d27ace55aa65f44d6a2f4db upstream. + +ia64 only defines __early_pfn_to_nid() for SPARSEMEM && NUMA configurations, +so the recent: + + commit: f2dbcfa738368c8a40d4a5f0b65dc9879577cb21 + mm: clean up for early_pfn_to_nid() + +ends up with some link problems for certain configuration files. + +Fix arch/ia64/Kconfig to only define HAVE_ARCH_EARLY_PFN_TO_NID in the +cases where we do provide this function. + +Signed-off-by: Tony Luck +Signed-off-by: Greg Kroah-Hartman + +--- + arch/ia64/Kconfig | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/arch/ia64/Kconfig ++++ b/arch/ia64/Kconfig +@@ -479,8 +479,7 @@ config HOLES_IN_ZONE + default y if VIRTUAL_MEM_MAP + + config HAVE_ARCH_EARLY_PFN_TO_NID +- def_bool y +- depends on NEED_MULTIPLE_NODES ++ def_bool NUMA && SPARSEMEM + + config HAVE_ARCH_NODEDATA_EXTENSION + def_bool y + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:23 2009 +Message-Id: <20090320222923.128981119@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:12 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Ingo Molnar , + "H. Peter Anvin" , + Joe Korty +Subject: [patch 02/43] Fix misreporting of #cores as #hyperthreads for Q9550 +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=fix-misreporting-of-cores-as-hyperthreads-for-q9550.patch +Content-Length: 3627 +Lines: 94 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Joe Korty + +For the Q9550, in x86_64 mode, /proc/cpuinfo mistakenly +thinks the #cores present is the #hyperthreads present. +i386 mode was not examined but is assumed to have the +same problem. + +A backport of the following three 2.6.29-rc1 patches +fixes the problem: + + 066941bd4eeb159307a5d7d795100d0887c00442: + [PATCH] x86: unmask CPUID levels on Intel CPUs + 99fb4d349db7e7dacb2099c5cc320a9e2d31c1ef: + [PATCH] x86: unmask CPUID levels on Intel CPUs, fix + bdf21a49bab28f0d9613e8d8724ef9c9168b61b9: + [PATCH] x86: add MSR_IA32_MISC_ENABLE bits to + +>From the first patch: "If the CPUID limit bit in +MSR_IA32_MISC_ENABLE is set, clear it to make all CPUID +information available. This is required for some features +to work, in particular XSAVE." + +Originally-Developed-by: H. Peter Anvin +Backported-by: Joe Korty +Signed-off-by: Joe Korty +Cc: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + +--- + arch/x86/include/asm/msr-index.h | 29 +++++++++++++++++++++++++++++ + arch/x86/kernel/cpu/intel.c | 13 +++++++++++++ + 2 files changed, 42 insertions(+) + +--- a/arch/x86/include/asm/msr-index.h ++++ b/arch/x86/include/asm/msr-index.h +@@ -200,6 +200,35 @@ + #define MSR_IA32_THERM_STATUS 0x0000019c + #define MSR_IA32_MISC_ENABLE 0x000001a0 + ++/* MISC_ENABLE bits: architectural */ ++#define MSR_IA32_MISC_ENABLE_FAST_STRING (1ULL << 0) ++#define MSR_IA32_MISC_ENABLE_TCC (1ULL << 1) ++#define MSR_IA32_MISC_ENABLE_EMON (1ULL << 7) ++#define MSR_IA32_MISC_ENABLE_BTS_UNAVAIL (1ULL << 11) ++#define MSR_IA32_MISC_ENABLE_PEBS_UNAVAIL (1ULL << 12) ++#define MSR_IA32_MISC_ENABLE_ENHANCED_SPEEDSTEP (1ULL << 16) ++#define MSR_IA32_MISC_ENABLE_MWAIT (1ULL << 18) ++#define MSR_IA32_MISC_ENABLE_LIMIT_CPUID (1ULL << 22) ++#define MSR_IA32_MISC_ENABLE_XTPR_DISABLE (1ULL << 23) ++#define MSR_IA32_MISC_ENABLE_XD_DISABLE (1ULL << 34) ++ ++/* MISC_ENABLE bits: model-specific, meaning may vary from core to core */ ++#define MSR_IA32_MISC_ENABLE_X87_COMPAT (1ULL << 2) ++#define MSR_IA32_MISC_ENABLE_TM1 (1ULL << 3) ++#define MSR_IA32_MISC_ENABLE_SPLIT_LOCK_DISABLE (1ULL << 4) ++#define MSR_IA32_MISC_ENABLE_L3CACHE_DISABLE (1ULL << 6) ++#define MSR_IA32_MISC_ENABLE_SUPPRESS_LOCK (1ULL << 8) ++#define MSR_IA32_MISC_ENABLE_PREFETCH_DISABLE (1ULL << 9) ++#define MSR_IA32_MISC_ENABLE_FERR (1ULL << 10) ++#define MSR_IA32_MISC_ENABLE_FERR_MULTIPLEX (1ULL << 10) ++#define MSR_IA32_MISC_ENABLE_TM2 (1ULL << 13) ++#define MSR_IA32_MISC_ENABLE_ADJ_PREF_DISABLE (1ULL << 19) ++#define MSR_IA32_MISC_ENABLE_SPEEDSTEP_LOCK (1ULL << 20) ++#define MSR_IA32_MISC_ENABLE_L1D_CONTEXT (1ULL << 24) ++#define MSR_IA32_MISC_ENABLE_DCU_PREF_DISABLE (1ULL << 37) ++#define MSR_IA32_MISC_ENABLE_TURBO_DISABLE (1ULL << 38) ++#define MSR_IA32_MISC_ENABLE_IP_PREF_DISABLE (1ULL << 39) ++ + /* Intel Model 6 */ + #define MSR_P6_EVNTSEL0 0x00000186 + #define MSR_P6_EVNTSEL1 0x00000187 +--- a/arch/x86/kernel/cpu/intel.c ++++ b/arch/x86/kernel/cpu/intel.c +@@ -30,6 +30,19 @@ + + static void __cpuinit early_init_intel(struct cpuinfo_x86 *c) + { ++ /* Unmask CPUID levels if masked: */ ++ if (c->x86 == 6 && c->x86_model >= 15) { ++ u64 misc_enable; ++ ++ rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable); ++ ++ if (misc_enable & MSR_IA32_MISC_ENABLE_LIMIT_CPUID) { ++ misc_enable &= ~MSR_IA32_MISC_ENABLE_LIMIT_CPUID; ++ wrmsrl(MSR_IA32_MISC_ENABLE, misc_enable); ++ c->cpuid_level = cpuid_eax(0); ++ } ++ } ++ + if ((c->x86 == 0xf && c->x86_model >= 0x03) || + (c->x86 == 0x6 && c->x86_model >= 0x0e)) + set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:23 2009 +Message-Id: <20090320222923.301362657@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:13 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Davide Libenzi , + Benjamin LaHaise , + Trond Myklebust , + Eric Dumazet , + Jeff Moyer , + Zach Brown +Subject: [patch 03/43] eventfd: remove fput() call from possible IRQ context +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=eventfd-remove-fput-call-from-possible-irq-context.patch +Content-Length: 4152 +Lines: 122 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Davide Libenzi + +commit 87c3a86e1c220121d0ced59d1a71e78ed9abc6dd upstream. + +Remove a source of fput() call from inside IRQ context. Myself, like Eric, +wasn't able to reproduce an fput() call from IRQ context, but Jeff said he was +able to, with the attached test program. Independently from this, the bug is +conceptually there, so we might be better off fixing it. This patch adds an +optimization similar to the one we already do on ->ki_filp, on ->ki_eventfd. +Playing with ->f_count directly is not pretty in general, but the alternative +here would be to add a brand new delayed fput() infrastructure, that I'm not +sure is worth it. + +Signed-off-by: Davide Libenzi +Cc: Benjamin LaHaise +Cc: Trond Myklebust +Cc: Eric Dumazet +Signed-off-by: Jeff Moyer +Cc: Zach Brown +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + fs/aio.c | 37 +++++++++++++++++++++++++++---------- + 1 file changed, 27 insertions(+), 10 deletions(-) + +--- a/fs/aio.c ++++ b/fs/aio.c +@@ -428,7 +428,7 @@ static struct kiocb *__aio_get_req(struc + req->private = NULL; + req->ki_iovec = NULL; + INIT_LIST_HEAD(&req->ki_run_list); +- req->ki_eventfd = ERR_PTR(-EINVAL); ++ req->ki_eventfd = NULL; + + /* Check if the completion queue has enough free space to + * accept an event from this io. +@@ -470,8 +470,6 @@ static inline void really_put_req(struct + { + assert_spin_locked(&ctx->ctx_lock); + +- if (!IS_ERR(req->ki_eventfd)) +- fput(req->ki_eventfd); + if (req->ki_dtor) + req->ki_dtor(req); + if (req->ki_iovec != &req->ki_inline_vec) +@@ -493,8 +491,11 @@ static void aio_fput_routine(struct work + list_del(&req->ki_list); + spin_unlock_irq(&fput_lock); + +- /* Complete the fput */ +- __fput(req->ki_filp); ++ /* Complete the fput(s) */ ++ if (req->ki_filp != NULL) ++ __fput(req->ki_filp); ++ if (req->ki_eventfd != NULL) ++ __fput(req->ki_eventfd); + + /* Link the iocb into the context's free list */ + spin_lock_irq(&ctx->ctx_lock); +@@ -512,12 +513,14 @@ static void aio_fput_routine(struct work + */ + static int __aio_put_req(struct kioctx *ctx, struct kiocb *req) + { ++ int schedule_putreq = 0; ++ + dprintk(KERN_DEBUG "aio_put(%p): f_count=%ld\n", + req, atomic_long_read(&req->ki_filp->f_count)); + + assert_spin_locked(&ctx->ctx_lock); + +- req->ki_users --; ++ req->ki_users--; + BUG_ON(req->ki_users < 0); + if (likely(req->ki_users)) + return 0; +@@ -525,10 +528,23 @@ static int __aio_put_req(struct kioctx * + req->ki_cancel = NULL; + req->ki_retry = NULL; + +- /* Must be done under the lock to serialise against cancellation. +- * Call this aio_fput as it duplicates fput via the fput_work. ++ /* ++ * Try to optimize the aio and eventfd file* puts, by avoiding to ++ * schedule work in case it is not __fput() time. In normal cases, ++ * we would not be holding the last reference to the file*, so ++ * this function will be executed w/out any aio kthread wakeup. + */ +- if (unlikely(atomic_long_dec_and_test(&req->ki_filp->f_count))) { ++ if (unlikely(atomic_long_dec_and_test(&req->ki_filp->f_count))) ++ schedule_putreq++; ++ else ++ req->ki_filp = NULL; ++ if (req->ki_eventfd != NULL) { ++ if (unlikely(atomic_long_dec_and_test(&req->ki_eventfd->f_count))) ++ schedule_putreq++; ++ else ++ req->ki_eventfd = NULL; ++ } ++ if (unlikely(schedule_putreq)) { + get_ioctx(ctx); + spin_lock(&fput_lock); + list_add(&req->ki_list, &fput_head); +@@ -992,7 +1008,7 @@ int aio_complete(struct kiocb *iocb, lon + * eventfd. The eventfd_signal() function is safe to be called + * from IRQ context. + */ +- if (!IS_ERR(iocb->ki_eventfd)) ++ if (iocb->ki_eventfd != NULL) + eventfd_signal(iocb->ki_eventfd, 1); + + put_rq: +@@ -1596,6 +1612,7 @@ static int io_submit_one(struct kioctx * + req->ki_eventfd = eventfd_fget((int) iocb->aio_resfd); + if (IS_ERR(req->ki_eventfd)) { + ret = PTR_ERR(req->ki_eventfd); ++ req->ki_eventfd = NULL; + goto out_put_req; + } + } + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:23 2009 +Message-Id: <20090320222923.469852861@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:14 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Martin Schwidefsky +Subject: [patch 04/43] S390: __div64_31 broken for CONFIG_MARCH_G5 +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=s390-__div64_31-broken-for-config_march_g5.patch +Content-Length: 1095 +Lines: 32 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Martin Schwidefsky + +commit 4fa81ed27781a12f6303b9263056635ae74e3e21 upstream. + +The implementation of __div64_31 for G5 machines is broken. The comments +in __div64_31 are correct, only the code does not do what the comments +say. The part "If the remainder has overflown subtract base and increase +the quotient" is only partially realized, the base is subtracted correctly +but the quotient is only increased if the dividend had the last bit set. +Using the correct instruction fixes the problem. + +Reported-by: Frans Pop +Tested-by: Frans Pop +Signed-off-by: Martin Schwidefsky +Signed-off-by: Greg Kroah-Hartman + +--- + arch/s390/lib/div64.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/s390/lib/div64.c ++++ b/arch/s390/lib/div64.c +@@ -61,7 +61,7 @@ static uint32_t __div64_31(uint64_t *n, + " clr %0,%3\n" + " jl 0f\n" + " slr %0,%3\n" +- " alr %1,%2\n" ++ " ahi %1,1\n" + "0:\n" + : "+d" (reg2), "+d" (reg3), "=d" (tmp) + : "d" (base), "2" (1UL) : "cc" ); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:23 2009 +Message-Id: <20090320222923.632902504@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:15 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Jan Beulich , + Takashi Iwai +Subject: [patch 05/43] ALSA: Fix vunmap and free order in snd_free_sgbuf_pages() +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=alsa-fix-vunmap-and-free-order-in-snd_free_sgbuf_pages.patch +Content-Length: 1203 +Lines: 42 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Takashi Iwai + +commit 6af845e4eb36fb91b322aaf77ec1cab2220a48ad upstream. + +In snd_free_sgbuf_pags(), vunmap() is called after releasing the SG +pages, and it causes errors on Xen as Xen manages the pages +differently. Although no significant errors have been reported on +the actual hardware, this order should be fixed other way round, +first vunmap() then free pages. + +Cc: Jan Beulich +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/core/sgbuf.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/sound/core/sgbuf.c ++++ b/sound/core/sgbuf.c +@@ -38,6 +38,10 @@ int snd_free_sgbuf_pages(struct snd_dma_ + if (! sgbuf) + return -EINVAL; + ++ if (dmab->area) ++ vunmap(dmab->area); ++ dmab->area = NULL; ++ + tmpb.dev.type = SNDRV_DMA_TYPE_DEV; + tmpb.dev.dev = sgbuf->dev; + for (i = 0; i < sgbuf->pages; i++) { +@@ -48,9 +52,6 @@ int snd_free_sgbuf_pages(struct snd_dma_ + tmpb.bytes = (sgbuf->table[i].addr & ~PAGE_MASK) << PAGE_SHIFT; + snd_dma_free_pages(&tmpb); + } +- if (dmab->area) +- vunmap(dmab->area); +- dmab->area = NULL; + + kfree(sgbuf->table); + kfree(sgbuf->page_table); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:23 2009 +Message-Id: <20090320222923.800315181@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:16 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Jiri Slaby , + Takashi Iwai +Subject: [patch 06/43] ALSA: mixart, fix lock imbalance +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=alsa-mixart-fix-lock-imbalance.patch +Content-Length: 669 +Lines: 25 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Jiri Slaby + +commit 82f5d57163abed2e5ff271d03217b6f90c616eb8 upstream. + +There is an omitted unlock in one snd_mixart_hw_params fail path. Fix it. + +Signed-off-by: Jiri Slaby +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/mixart/mixart.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/mixart/mixart.c ++++ b/sound/pci/mixart/mixart.c +@@ -607,6 +607,7 @@ static int snd_mixart_hw_params(struct s + /* set the format to the board */ + err = mixart_set_format(stream, format); + if(err < 0) { ++ mutex_unlock(&mgr->setup_mutex); + return err; + } + + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:24 2009 +Message-Id: <20090320222923.991758234@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:17 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Jiri Slaby , + Takashi Iwai +Subject: [patch 07/43] ALSA: pcm_oss, fix locking typo +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=alsa-pcm_oss-fix-locking-typo.patch +Content-Length: 1091 +Lines: 36 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Jiri Slaby + +commit 91054598f794fb5d8a0b1e747ff8e2e8fc2115b3 upstream. + +s/mutex_lock/mutex_unlock/ on 2 fail paths in snd_pcm_oss_proc_write. +Probably a typo, lock should be unlocked when leaving the function. + +Signed-off-by: Jiri Slaby +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/core/oss/pcm_oss.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/core/oss/pcm_oss.c ++++ b/sound/core/oss/pcm_oss.c +@@ -2872,7 +2872,7 @@ static void snd_pcm_oss_proc_write(struc + setup = kmalloc(sizeof(*setup), GFP_KERNEL); + if (! setup) { + buffer->error = -ENOMEM; +- mutex_lock(&pstr->oss.setup_mutex); ++ mutex_unlock(&pstr->oss.setup_mutex); + return; + } + if (pstr->oss.setup_list == NULL) +@@ -2886,7 +2886,7 @@ static void snd_pcm_oss_proc_write(struc + if (! template.task_name) { + kfree(setup); + buffer->error = -ENOMEM; +- mutex_lock(&pstr->oss.setup_mutex); ++ mutex_unlock(&pstr->oss.setup_mutex); + return; + } + } + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:24 2009 +Message-Id: <20090320222924.155325468@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:18 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Takashi Iwai +Subject: [patch 08/43] ALSA: hda - Fix DMA mask for ATI controllers +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=alsa-hda-fix-dma-mask-for-ati-controllers.patch +Content-Length: 1156 +Lines: 36 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Takashi Iwai + +commit 09240cf429505891d6123ce14a29f58f2a60121e upstream. + +ATI controllers (at least some SB0600 models) appear buggy to handle +64bit DMA. As a workaround, reset GCAP bit0 and let the driver to +use only 32bit DMA on these controllers. + +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/hda_intel.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -2208,9 +2208,17 @@ static int __devinit azx_create(struct s + gcap = azx_readw(chip, GCAP); + snd_printdd("chipset global capabilities = 0x%x\n", gcap); + ++ /* ATI chips seems buggy about 64bit DMA addresses */ ++ if (chip->driver_type == AZX_DRIVER_ATI) ++ gcap &= ~0x01; ++ + /* allow 64bit DMA address if supported by H/W */ + if ((gcap & 0x01) && !pci_set_dma_mask(pci, DMA_64BIT_MASK)) + pci_set_consistent_dma_mask(pci, DMA_64BIT_MASK); ++ else { ++ pci_set_dma_mask(pci, DMA_32BIT_MASK); ++ pci_set_consistent_dma_mask(pci, DMA_32BIT_MASK); ++ } + + /* read number of streams from GCAP register instead of using + * hardcoded value + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:24 2009 +Message-Id: <20090320222924.315647229@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:19 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Takashi Iwai +Subject: [patch 09/43] ALSA: hda - Workaround for buggy DMA position on ATI controllers +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=alsa-hda-workaround-for-buggy-dma-position-on-ati-controllers.patch +Content-Length: 1708 +Lines: 63 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Takashi Iwai + +commit c673ba1c23941173c16ff24c7cb34199e826c8b5 upstream. + +The position-buffer on ATI controllers are unreliable as well as +on VIA chips, thus the same workaround for DMA position reading as +VIA is useful for ATI. + +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/hda_intel.c | 31 ++++++++++++++++++------------- + 1 file changed, 18 insertions(+), 13 deletions(-) + +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -2063,26 +2063,31 @@ static int __devinit check_position_fix( + { + const struct snd_pci_quirk *q; + +- /* Check VIA HD Audio Controller exist */ +- if (chip->pci->vendor == PCI_VENDOR_ID_VIA && +- chip->pci->device == VIA_HDAC_DEVICE_ID) { ++ switch (fix) { ++ case POS_FIX_LPIB: ++ case POS_FIX_POSBUF: ++ return fix; ++ } ++ ++ /* Check VIA/ATI HD Audio Controller exist */ ++ switch (chip->driver_type) { ++ case AZX_DRIVER_VIA: ++ case AZX_DRIVER_ATI: + chip->via_dmapos_patch = 1; + /* Use link position directly, avoid any transfer problem. */ + return POS_FIX_LPIB; + } + chip->via_dmapos_patch = 0; + +- if (fix == POS_FIX_AUTO) { +- q = snd_pci_quirk_lookup(chip->pci, position_fix_list); +- if (q) { +- printk(KERN_INFO +- "hda_intel: position_fix set to %d " +- "for device %04x:%04x\n", +- q->value, q->subvendor, q->subdevice); +- return q->value; +- } ++ q = snd_pci_quirk_lookup(chip->pci, position_fix_list); ++ if (q) { ++ printk(KERN_INFO ++ "hda_intel: position_fix set to %d " ++ "for device %04x:%04x\n", ++ q->value, q->subvendor, q->subdevice); ++ return q->value; + } +- return fix; ++ return POS_FIX_AUTO; + } + + /* + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:24 2009 +Message-Id: <20090320222924.477204359@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:20 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Krzysztof Helt , + Takashi Iwai +Subject: [patch 10/43] ALSA: opl3sa2 - Fix NULL dereference when suspending snd_opl3sa2 +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=alsa-opl3sa2-fix-null-dereference-when-suspending-snd_opl3sa2.patch +Content-Length: 1423 +Lines: 53 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Krzysztof Helt + +commit dde332b660cf0bc2baaba678b52768a0fb6e6da2 upstream. + +Fix the OOPS during a opl3sa2 card suspend +and resume if the driver is loaded but the card +is not found. + +Signed-off-by: Krzysztof Helt +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/isa/opl3sa2.c | 18 ++++++++++++------ + 1 file changed, 12 insertions(+), 6 deletions(-) + +--- a/sound/isa/opl3sa2.c ++++ b/sound/isa/opl3sa2.c +@@ -550,21 +550,27 @@ static int __devinit snd_opl3sa2_mixer(s + #ifdef CONFIG_PM + static int snd_opl3sa2_suspend(struct snd_card *card, pm_message_t state) + { +- struct snd_opl3sa2 *chip = card->private_data; ++ if (card) { ++ struct snd_opl3sa2 *chip = card->private_data; + +- snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); +- chip->wss->suspend(chip->wss); +- /* power down */ +- snd_opl3sa2_write(chip, OPL3SA2_PM_CTRL, OPL3SA2_PM_D3); ++ snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); ++ chip->wss->suspend(chip->wss); ++ /* power down */ ++ snd_opl3sa2_write(chip, OPL3SA2_PM_CTRL, OPL3SA2_PM_D3); ++ } + + return 0; + } + + static int snd_opl3sa2_resume(struct snd_card *card) + { +- struct snd_opl3sa2 *chip = card->private_data; ++ struct snd_opl3sa2 *chip; + int i; + ++ if (!card) ++ return 0; ++ ++ chip = card->private_data; + /* power up */ + snd_opl3sa2_write(chip, OPL3SA2_PM_CTRL, OPL3SA2_PM_D0); + + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:24 2009 +Message-Id: <20090320222924.649248510@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:21 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + "J. Bruce Fields" +Subject: [patch 11/43] nfsd: nfsd should drop CAP_MKNOD for non-root +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=nfsd-nfsd-should-drop-cap_mknod-for-non-root.patch +Content-Length: 1400 +Lines: 36 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: J. Bruce Fields + +commit 76a67ec6fb79ff3570dcb5342142c16098299911 upstream. + +Since creating a device node is normally an operation requiring special +privilege, Igor Zhbanov points out that it is surprising (to say the +least) that a client can, for example, create a device node on a +filesystem exported with root_squash. + +So, make sure CAP_MKNOD is among the capabilities dropped when an nfsd +thread handles a request from a non-root user. + +Reported-by: Igor Zhbanov +Signed-off-by: J. Bruce Fields +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/capability.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/include/linux/capability.h ++++ b/include/linux/capability.h +@@ -382,8 +382,10 @@ typedef struct kernel_cap_struct { + # define CAP_FULL_SET ((kernel_cap_t){{ ~0, ~0 }}) + # define CAP_INIT_EFF_SET ((kernel_cap_t){{ ~CAP_TO_MASK(CAP_SETPCAP), ~0 }}) + # define CAP_FS_SET ((kernel_cap_t){{ CAP_FS_MASK_B0, CAP_FS_MASK_B1 } }) +-# define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0|CAP_TO_MASK(CAP_SYS_RESOURCE), \ +- CAP_FS_MASK_B1 } }) ++# define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \ ++ | CAP_TO_MASK(CAP_SYS_RESOURCE) \ ++ | CAP_TO_MASK(CAP_MKNOD), \ ++ CAP_FS_MASK_B1 } }) + + #endif /* _KERNEL_CAPABILITY_U32S != 2 */ + + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:24 2009 +Message-Id: <20090320222924.801209502@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:22 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Benny Halevy , + "J. Bruce Fields" +Subject: [patch 12/43] NFSD: provide encode routine for OP_OPENATTR +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=nfsd-provide-encode-routine-for-op_openattr.patch +Content-Length: 1137 +Lines: 33 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Benny Halevy + +commit 84f09f46b4ee9e4e9b6381f8af31817516d2091b upstream. + +Although this operation is unsupported by our implementation +we still need to provide an encode routine for it to +merely encode its (error) status back in the compound reply. + +Thanks for Bill Baker at sun.com for testing with the Sun +OpenSolaris' client, finding, and reporting this bug at +Connectathon 2009. + +This bug was introduced in 2.6.27 + +Signed-off-by: Benny Halevy +Signed-off-by: J. Bruce Fields +Signed-off-by: Greg Kroah-Hartman + +--- + fs/nfsd/nfs4xdr.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/fs/nfsd/nfs4xdr.c ++++ b/fs/nfsd/nfs4xdr.c +@@ -2598,6 +2598,7 @@ static nfsd4_enc nfsd4_enc_ops[] = { + [OP_LOOKUPP] = (nfsd4_enc)nfsd4_encode_noop, + [OP_NVERIFY] = (nfsd4_enc)nfsd4_encode_noop, + [OP_OPEN] = (nfsd4_enc)nfsd4_encode_open, ++ [OP_OPENATTR] = (nfsd4_enc)nfsd4_encode_noop, + [OP_OPEN_CONFIRM] = (nfsd4_enc)nfsd4_encode_open_confirm, + [OP_OPEN_DOWNGRADE] = (nfsd4_enc)nfsd4_encode_open_downgrade, + [OP_PUTFH] = (nfsd4_enc)nfsd4_encode_noop, + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:25 2009 +Message-Id: <20090320222924.954615735@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:23 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Milan Broz , + Alasdair G Kergon +Subject: [patch 13/43] dm ioctl: validate name length when renaming +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=dm-ioctl-validate-name-length-when-renaming.patch +Content-Length: 1293 +Lines: 37 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Milan Broz + +commit bc0fd67feba2e0770aad85393500ba77c6489f1c upstream. + +When renaming a mapped device validate the length of the new name. + +The rename ioctl accepted any correctly-terminated string enclosed +within the data passed from userspace. The other ioctls enforce a +size limit of DM_NAME_LEN. If the name is changed and becomes longer +than that, the device can no longer be addressed by name. + +Fix it by properly checking for device name length (including +terminating zero). + +Signed-off-by: Milan Broz +Reviewed-by: Jonathan Brassow +Reviewed-by: Alasdair G Kergon +Signed-off-by: Alasdair G Kergon +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-ioctl.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/md/dm-ioctl.c ++++ b/drivers/md/dm-ioctl.c +@@ -704,7 +704,8 @@ static int dev_rename(struct dm_ioctl *p + char *new_name = (char *) param + param->data_start; + + if (new_name < param->data || +- invalid_str(new_name, (void *) param + param_size)) { ++ invalid_str(new_name, (void *) param + param_size) || ++ strlen(new_name) > DM_NAME_LEN - 1) { + DMWARN("Invalid new logical volume name supplied."); + return -EINVAL; + } + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:25 2009 +Message-Id: <20090320222925.117322176@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:24 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Mikulas Patocka , + Alasdair G Kergon +Subject: [patch 14/43] dm io: respect BIO_MAX_PAGES limit +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=dm-io-respect-bio_max_pages-limit.patch +Content-Length: 1079 +Lines: 31 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Mikulas Patocka + +commit d659e6cc98766a1a61d6bdd283f95d149abd7719 upstream. + +dm-io calls bio_get_nr_vecs to get the maximum number of pages to use +for a given device. It allocates one additional bio_vec to use +internally but failed to respect BIO_MAX_PAGES, so fix this. + +This was the likely cause of: + https://bugzilla.redhat.com/show_bug.cgi?id=173153 + +Signed-off-by: Mikulas Patocka +Signed-off-by: Alasdair G Kergon +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-io.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/md/dm-io.c ++++ b/drivers/md/dm-io.c +@@ -292,6 +292,8 @@ static void do_region(int rw, unsigned r + (PAGE_SIZE >> SECTOR_SHIFT)); + num_bvecs = 1 + min_t(int, bio_get_nr_vecs(where->bdev), + num_bvecs); ++ if (unlikely(num_bvecs > BIO_MAX_PAGES)) ++ num_bvecs = BIO_MAX_PAGES; + bio = bio_alloc_bioset(GFP_NOIO, num_bvecs, io->client->bios); + bio->bi_sector = where->sector + (where->count - remaining); + bio->bi_bdev = where->bdev; + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:25 2009 +Message-Id: <20090320222925.285081963@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:25 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Huang Ying , + Herbert Xu , + Milan Broz , + Alasdair G Kergon +Subject: [patch 15/43] dm crypt: fix kcryptd_async_done parameter +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=dm-crypt-fix-kcryptd_async_done-parameter.patch +Content-Length: 3545 +Lines: 101 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Huang Ying + +commit b2174eebd1fadb76454dad09a1dacbc17081e6b0 upstream. + +In the async encryption-complete function (kcryptd_async_done), the +crypto_async_request passed in may be different from the one passed to +crypto_ablkcipher_encrypt/decrypt. Only crypto_async_request->data is +guaranteed to be same as the one passed in. The current +kcryptd_async_done uses the passed-in crypto_async_request directly +which may cause the AES-NI-based AES algorithm implementation to panic. + +This patch fixes this bug by only using crypto_async_request->data, +which points to dm_crypt_request, the crypto_async_request passed in. +The original data (convert_context) is gotten from dm_crypt_request. + +[mbroz@redhat.com: reworked] +Signed-off-by: Huang Ying +Cc: Herbert Xu +Signed-off-by: Milan Broz +Signed-off-by: Andrew Morton +Signed-off-by: Alasdair G Kergon +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-crypt.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +--- a/drivers/md/dm-crypt.c ++++ b/drivers/md/dm-crypt.c +@@ -60,6 +60,7 @@ struct dm_crypt_io { + }; + + struct dm_crypt_request { ++ struct convert_context *ctx; + struct scatterlist sg_in; + struct scatterlist sg_out; + }; +@@ -335,6 +336,18 @@ static void crypt_convert_init(struct cr + init_completion(&ctx->restart); + } + ++static struct dm_crypt_request *dmreq_of_req(struct crypt_config *cc, ++ struct ablkcipher_request *req) ++{ ++ return (struct dm_crypt_request *)((char *)req + cc->dmreq_start); ++} ++ ++static struct ablkcipher_request *req_of_dmreq(struct crypt_config *cc, ++ struct dm_crypt_request *dmreq) ++{ ++ return (struct ablkcipher_request *)((char *)dmreq - cc->dmreq_start); ++} ++ + static int crypt_convert_block(struct crypt_config *cc, + struct convert_context *ctx, + struct ablkcipher_request *req) +@@ -345,10 +358,11 @@ static int crypt_convert_block(struct cr + u8 *iv; + int r = 0; + +- dmreq = (struct dm_crypt_request *)((char *)req + cc->dmreq_start); ++ dmreq = dmreq_of_req(cc, req); + iv = (u8 *)ALIGN((unsigned long)(dmreq + 1), + crypto_ablkcipher_alignmask(cc->tfm) + 1); + ++ dmreq->ctx = ctx; + sg_init_table(&dmreq->sg_in, 1); + sg_set_page(&dmreq->sg_in, bv_in->bv_page, 1 << SECTOR_SHIFT, + bv_in->bv_offset + ctx->offset_in); +@@ -395,8 +409,9 @@ static void crypt_alloc_req(struct crypt + cc->req = mempool_alloc(cc->req_pool, GFP_NOIO); + ablkcipher_request_set_tfm(cc->req, cc->tfm); + ablkcipher_request_set_callback(cc->req, CRYPTO_TFM_REQ_MAY_BACKLOG | +- CRYPTO_TFM_REQ_MAY_SLEEP, +- kcryptd_async_done, ctx); ++ CRYPTO_TFM_REQ_MAY_SLEEP, ++ kcryptd_async_done, ++ dmreq_of_req(cc, cc->req)); + } + + /* +@@ -821,7 +836,8 @@ static void kcryptd_crypt_read_convert(s + static void kcryptd_async_done(struct crypto_async_request *async_req, + int error) + { +- struct convert_context *ctx = async_req->data; ++ struct dm_crypt_request *dmreq = async_req->data; ++ struct convert_context *ctx = dmreq->ctx; + struct dm_crypt_io *io = container_of(ctx, struct dm_crypt_io, ctx); + struct crypt_config *cc = io->target->private; + +@@ -830,7 +846,7 @@ static void kcryptd_async_done(struct cr + return; + } + +- mempool_free(ablkcipher_request_cast(async_req), cc->req_pool); ++ mempool_free(req_of_dmreq(cc, dmreq), cc->req_pool); + + if (!atomic_dec_and_test(&ctx->pending)) + return; + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:25 2009 +Message-Id: <20090320222925.453417607@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:26 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Milan Broz , + Alasdair G Kergon +Subject: [patch 16/43] dm crypt: wait for endio to complete before destruction +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=dm-crypt-wait-for-endio-to-complete-before-destruction.patch +Content-Length: 4580 +Lines: 154 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Milan Broz + +commit b35f8caa0890169000fec22902290d9a15274cbd upstream. + +The following oops has been reported when dm-crypt runs over a loop device. + +... +[ 70.381058] Process loop0 (pid: 4268, ti=cf3b2000 task=cf1cc1f0 task.ti=cf3b2000) +... +[ 70.381058] Call Trace: +[ 70.381058] [] ? crypt_dec_pending+0x5e/0x62 [dm_crypt] +[ 70.381058] [] ? crypt_endio+0xa2/0xaa [dm_crypt] +[ 70.381058] [] ? crypt_endio+0x0/0xaa [dm_crypt] +[ 70.381058] [] ? bio_endio+0x2b/0x2e +[ 70.381058] [] ? dec_pending+0x224/0x23b [dm_mod] +[ 70.381058] [] ? clone_endio+0x79/0xa4 [dm_mod] +[ 70.381058] [] ? clone_endio+0x0/0xa4 [dm_mod] +[ 70.381058] [] ? bio_endio+0x2b/0x2e +[ 70.381058] [] ? loop_thread+0x380/0x3b7 +[ 70.381058] [] ? do_lo_send_aops+0x0/0x165 +[ 70.381058] [] ? autoremove_wake_function+0x0/0x33 +[ 70.381058] [] ? loop_thread+0x0/0x3b7 + +When a table is being replaced, it waits for I/O to complete +before destroying the mempool, but the endio function doesn't +call mempool_free() until after completing the bio. + +Fix it by swapping the order of those two operations. + +The same problem occurs in dm.c with md referenced after dec_pending. +Again, we swap the order. + +Signed-off-by: Milan Broz +Signed-off-by: Alasdair G Kergon +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/md/dm-crypt.c | 17 ++++++++++------- + drivers/md/dm.c | 32 +++++++++++++++++++------------- + 2 files changed, 29 insertions(+), 20 deletions(-) + +--- a/drivers/md/dm.c ++++ b/drivers/md/dm.c +@@ -480,9 +480,12 @@ static int __noflush_suspending(struct m + static void dec_pending(struct dm_io *io, int error) + { + unsigned long flags; ++ int io_error; ++ struct bio *bio; ++ struct mapped_device *md = io->md; + + /* Push-back supersedes any I/O errors */ +- if (error && !(io->error > 0 && __noflush_suspending(io->md))) ++ if (error && !(io->error > 0 && __noflush_suspending(md))) + io->error = error; + + if (atomic_dec_and_test(&io->io_count)) { +@@ -492,25 +495,28 @@ static void dec_pending(struct dm_io *io + * This must be handled before the sleeper on + * suspend queue merges the pushback list. + */ +- spin_lock_irqsave(&io->md->pushback_lock, flags); +- if (__noflush_suspending(io->md)) +- bio_list_add(&io->md->pushback, io->bio); ++ spin_lock_irqsave(&md->pushback_lock, flags); ++ if (__noflush_suspending(md)) ++ bio_list_add(&md->pushback, io->bio); + else + /* noflush suspend was interrupted. */ + io->error = -EIO; +- spin_unlock_irqrestore(&io->md->pushback_lock, flags); ++ spin_unlock_irqrestore(&md->pushback_lock, flags); + } + + end_io_acct(io); + +- if (io->error != DM_ENDIO_REQUEUE) { +- blk_add_trace_bio(io->md->queue, io->bio, ++ io_error = io->error; ++ bio = io->bio; ++ ++ free_io(md, io); ++ ++ if (io_error != DM_ENDIO_REQUEUE) { ++ blk_add_trace_bio(md->queue, io->bio, + BLK_TA_COMPLETE); + +- bio_endio(io->bio, io->error); ++ bio_endio(bio, io_error); + } +- +- free_io(io->md, io); + } + } + +@@ -518,6 +524,7 @@ static void clone_endio(struct bio *bio, + { + int r = 0; + struct dm_target_io *tio = bio->bi_private; ++ struct dm_io *io = tio->io; + struct mapped_device *md = tio->io->md; + dm_endio_fn endio = tio->ti->type->end_io; + +@@ -541,15 +548,14 @@ static void clone_endio(struct bio *bio, + } + } + +- dec_pending(tio->io, error); +- + /* + * Store md for cleanup instead of tio which is about to get freed. + */ + bio->bi_private = md->bs; + +- bio_put(bio); + free_tio(md, tio); ++ bio_put(bio); ++ dec_pending(io, error); + } + + static sector_t max_io_len(struct mapped_device *md, +--- a/drivers/md/dm-crypt.c ++++ b/drivers/md/dm-crypt.c +@@ -568,19 +568,22 @@ static void crypt_inc_pending(struct dm_ + static void crypt_dec_pending(struct dm_crypt_io *io) + { + struct crypt_config *cc = io->target->private; ++ struct bio *base_bio = io->base_bio; ++ struct dm_crypt_io *base_io = io->base_io; ++ int error = io->error; + + if (!atomic_dec_and_test(&io->pending)) + return; + +- if (likely(!io->base_io)) +- bio_endio(io->base_bio, io->error); ++ mempool_free(io, cc->io_pool); ++ ++ if (likely(!base_io)) ++ bio_endio(base_bio, error); + else { +- if (io->error && !io->base_io->error) +- io->base_io->error = io->error; +- crypt_dec_pending(io->base_io); ++ if (error && !base_io->error) ++ base_io->error = error; ++ crypt_dec_pending(base_io); + } +- +- mempool_free(io, cc->io_pool); + } + + /* + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:25 2009 +Message-Id: <20090320222925.618177174@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:27 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Tejun Heo , + Jeff Garzik +Subject: [patch 17/43] ata_piix: add workaround for Samsung DB-P70 +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=ata_piix-add-workaround-for-samsung-db-p70.patch +Content-Length: 2744 +Lines: 81 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Tejun Heo + +commit e9c1670c2a14ef9cc20d86b24b829f3947aad34e upstream. + +Samsung DB-P70 somehow botched the first ICH9 SATA port. The board +doesn't expose the first port but somehow SStatus reports link online +while failing SRST protocol leading to repeated probe failures and +thus long boot delay. + +Because the BIOS doesn't carry any identifying DMI information, the +port can't be blacklisted safely. Fortunately, the controller does +have subsystem vendor and ID set. It's unclear whether the subsystem +IDs are used only for the board but it can be safely worked around by +disabling SIDPR access and just using SRST works around the problem. +Even when the workaround is triggered on an unaffected board the only +side effect will be missing SCR access. + +Signed-off-by: Tejun Heo +Reported-by: Joseph Jang +Reported-by: Jonghyon Sohn +Signed-off-by: Jeff Garzik +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/ata/ata_piix.c | 37 +++++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +--- a/drivers/ata/ata_piix.c ++++ b/drivers/ata/ata_piix.c +@@ -1294,6 +1294,39 @@ static const int *__devinit piix_init_sa + return map; + } + ++static bool piix_no_sidpr(struct ata_host *host) ++{ ++ struct pci_dev *pdev = to_pci_dev(host->dev); ++ ++ /* ++ * Samsung DB-P70 only has three ATA ports exposed and ++ * curiously the unconnected first port reports link online ++ * while not responding to SRST protocol causing excessive ++ * detection delay. ++ * ++ * Unfortunately, the system doesn't carry enough DMI ++ * information to identify the machine but does have subsystem ++ * vendor and device set. As it's unclear whether the ++ * subsystem vendor/device is used only for this specific ++ * board, the port can't be disabled solely with the ++ * information; however, turning off SIDPR access works around ++ * the problem. Turn it off. ++ * ++ * This problem is reported in bnc#441240. ++ * ++ * https://bugzilla.novell.com/show_bug.cgi?id=441420 ++ */ ++ if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2920 && ++ pdev->subsystem_vendor == PCI_VENDOR_ID_SAMSUNG && ++ pdev->subsystem_device == 0xb049) { ++ dev_printk(KERN_WARNING, host->dev, ++ "Samsung DB-P70 detected, disabling SIDPR\n"); ++ return true; ++ } ++ ++ return false; ++} ++ + static int __devinit piix_init_sidpr(struct ata_host *host) + { + struct pci_dev *pdev = to_pci_dev(host->dev); +@@ -1307,6 +1340,10 @@ static int __devinit piix_init_sidpr(str + if (hpriv->map[i] == IDE) + return 0; + ++ /* is it blacklisted? */ ++ if (piix_no_sidpr(host)) ++ return 0; ++ + if (!(host->ports[0]->flags & PIIX_FLAG_SIDPR)) + return 0; + + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:25 2009 +Message-Id: <20090320222925.793762675@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:28 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Mark Jenks , + Andy Walls , + Mauro Carvalho Chehab , + Jarod Wilson +Subject: [patch 18/43] V4L/DVB (10218): cx23885: Fix Oops for mixed install of analog and digital only cards +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=v4l-dvb-cx23885-fix-oops-for-mixed-install-of-analog-and-digital-only-cards.patch +Content-Length: 2101 +Lines: 65 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Andy Walls + +commit cd8f894eacf13996d920fdd2aef1afc55156b191 upstream. + +Analog support for HVR-1250 has not been completed, but does exist for +the HVR-1800. + +Since both cards use the same driver, it tries to create the analog +dev for both devices, which is not possible. + +This causes a NULL error to show up in video_open and mpeg_open. + +-Mark + +Iterations through the cx23885_devlist must check for NULL +pointers as some supported devices only have DVB support at the moment. +Mark Jenks encoutered an Oops in a system with both an HVR-1250 and HVR-1800 +installed. + +-Andy + +Reported-by: Mark Jenks +Tested-by: Mark Jenks +Signed-off-by: Mark Jenks +Signed-off-by: Andy Walls +Signed-off-by: Mauro Carvalho Chehab +Signed-off-by: Jarod Wilson +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/media/video/cx23885/cx23885-417.c | 3 ++- + drivers/media/video/cx23885/cx23885-video.c | 5 +++-- + 2 files changed, 5 insertions(+), 3 deletions(-) + +--- a/drivers/media/video/cx23885/cx23885-417.c ++++ b/drivers/media/video/cx23885/cx23885-417.c +@@ -1585,7 +1585,8 @@ static int mpeg_open(struct inode *inode + lock_kernel(); + list_for_each(list, &cx23885_devlist) { + h = list_entry(list, struct cx23885_dev, devlist); +- if (h->v4l_device->minor == minor) { ++ if (h->v4l_device && ++ h->v4l_device->minor == minor) { + dev = h; + break; + } +--- a/drivers/media/video/cx23885/cx23885-video.c ++++ b/drivers/media/video/cx23885/cx23885-video.c +@@ -730,12 +730,13 @@ static int video_open(struct inode *inod + lock_kernel(); + list_for_each(list, &cx23885_devlist) { + h = list_entry(list, struct cx23885_dev, devlist); +- if (h->video_dev->minor == minor) { ++ if (h->video_dev && ++ h->video_dev->minor == minor) { + dev = h; + type = V4L2_BUF_TYPE_VIDEO_CAPTURE; + } + if (h->vbi_dev && +- h->vbi_dev->minor == minor) { ++ h->vbi_dev->minor == minor) { + dev = h; + type = V4L2_BUF_TYPE_VBI_CAPTURE; + } + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:26 2009 +Message-Id: <20090320222925.949394608@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:29 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Mathieu Chouquet-Stringer , + Henrique de Moraes Holschuh , + Len Brown +Subject: [patch 19/43] thinkpad-acpi: fix module autoloading for older models +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=thinkpad-acpi-fix-module-autoloading-for-older-models.patch +Content-Length: 2137 +Lines: 55 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Mathieu Chouquet-Stringer + +commit b36a50f92d1c4300a88f606b4d2bbdc4f442a2d7 upstream. + +Looking at the source, there seems to be a missing * to match my DMI +string. I mean for newer IBM and Lenovo's laptops you match either one +of the following: +MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*"); +MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO:*:pvrThinkPad*:rvnLENOVO:*"); + +While for older Thinkpads, you do this (for instance): +IBM_BIOS_MODULE_ALIAS("1[0,3,6,8,A-G,I,K,M-P,S,T]"); + +with IBM_BIOS_MODULE_ALIAS being MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW") + +Note there's no * terminating the string. As result, udev doesn't load +anything because modprobe cannot find anything matching this (my +machine actually): + +udevtest: run: '/sbin/modprobe dmi:bvnIBM:bvr1IET71WW(2.10):bd06/16/2006:svnIBM:pn236621U:pvrNotAv + +Signed-off-by: Mathieu Chouquet-Stringer +Acked-by: Henrique de Moraes Holschuh +Signed-off-by: Len Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/misc/thinkpad_acpi.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +--- a/drivers/misc/thinkpad_acpi.c ++++ b/drivers/misc/thinkpad_acpi.c +@@ -6927,7 +6927,7 @@ MODULE_ALIAS(TPACPI_DRVR_SHORTNAME); + * if it is not there yet. + */ + #define IBM_BIOS_MODULE_ALIAS(__type) \ +- MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW") ++ MODULE_ALIAS("dmi:bvnIBM:bvr" __type "ET??WW*") + + /* Non-ancient thinkpads */ + MODULE_ALIAS("dmi:bvnIBM:*:svnIBM:*:pvrThinkPad*:rvnIBM:*"); +@@ -6936,9 +6936,9 @@ MODULE_ALIAS("dmi:bvnLENOVO:*:svnLENOVO: + /* Ancient thinkpad BIOSes have to be identified by + * BIOS type or model number, and there are far less + * BIOS types than model numbers... */ +-IBM_BIOS_MODULE_ALIAS("I[B,D,H,I,M,N,O,T,W,V,Y,Z]"); +-IBM_BIOS_MODULE_ALIAS("1[0,3,6,8,A-G,I,K,M-P,S,T]"); +-IBM_BIOS_MODULE_ALIAS("K[U,X-Z]"); ++IBM_BIOS_MODULE_ALIAS("I[BDHIMNOTWVYZ]"); ++IBM_BIOS_MODULE_ALIAS("1[0368A-GIKM-PST]"); ++IBM_BIOS_MODULE_ALIAS("K[UX-Z]"); + + MODULE_AUTHOR("Borislav Deianov, Henrique de Moraes Holschuh"); + MODULE_DESCRIPTION(TPACPI_DESC); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:26 2009 +Message-Id: <20090320222926.112576670@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:30 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk +Subject: [patch 20/43] Add -fwrapv to gcc CFLAGS +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=add-fwrapv-to-gcc-cflags.patch +Content-Length: 1149 +Lines: 38 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Linus Torvalds + +commit 68df3755e383e6fecf2354a67b08f92f18536594 upstream. + +This makes sure that gcc doesn't try to optimize away wrapping +arithmetic, which the kernel occasionally uses for overflow testing, ie +things like + + if (ptr + offset < ptr) + +which technically is undefined for non-unsigned types. See + + http://bugzilla.kernel.org/show_bug.cgi?id=12597 + +for details. + +Not all versions of gcc support it, so we need to make it conditional +(it looks like it was introduced in gcc-3.4). + +Reminded-by: Alan Cox +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + Makefile | 1 + + 1 file changed, 1 insertion(+) + +--- a/Makefile ++++ b/Makefile +@@ -341,6 +341,7 @@ KBUILD_CPPFLAGS := -D__KERNEL__ $(LINUXI + KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ + -fno-strict-aliasing -fno-common \ + -Werror-implicit-function-declaration ++KBUILD_CFLAGS += $(call cc-option,-fwrapv) + KBUILD_AFLAGS := -D__ASSEMBLY__ + + # Read KERNELRELEASE from include/config/kernel.release (if it exists) + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:26 2009 +Message-Id: <20090320222926.284011924@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:31 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk +Subject: [patch 21/43] Move cc-option to below arch-specific setup +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=move-cc-option-to-below-arch-specific-setup.patch +Content-Length: 1424 +Lines: 41 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Linus Torvalds + +commit d0115552cdb0b4d4146975889fee2e9355515c4b upstream. + +Sam Ravnborg says: + "We have several architectures that plays strange games with $(CC) and + $(CROSS_COMPILE). + + So we need to postpone any use of $(call cc-option..) until we have + included the arch specific Makefile so we try with the correct $(CC) + version." + +Requested-by: Sam Ravnborg +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/Makefile ++++ b/Makefile +@@ -341,7 +341,6 @@ KBUILD_CPPFLAGS := -D__KERNEL__ $(LINUXI + KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ + -fno-strict-aliasing -fno-common \ + -Werror-implicit-function-declaration +-KBUILD_CFLAGS += $(call cc-option,-fwrapv) + KBUILD_AFLAGS := -D__ASSEMBLY__ + + # Read KERNELRELEASE from include/config/kernel.release (if it exists) +@@ -556,6 +555,9 @@ KBUILD_CFLAGS += $(call cc-option,-Wdecl + # disable pointer signed / unsigned warnings in gcc 4.0 + KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,) + ++# disable invalid "can't wrap" optimzations for signed / pointers ++KBUILD_CFLAGS += $(call cc-option,-fwrapv) ++ + # Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments + # But warn user when we do so + warn-assign = \ + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:26 2009 +Message-Id: <20090320222926.440885637@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:32 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Thomas Bartosik +Subject: [patch 22/43] USB: storage: Unusual USB device Prolific 2507 variation added +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-storage-unusual-usb-device-prolific-2507-variation-added.patch +Content-Length: 1647 +Lines: 44 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Thomas Bartosik + +commit 8a0845c51b2e300f5204a323b874f7f58ea0eff7 upstream. + +The "c-enter" USB to Toshiba 1.8" IDE enclosure needs special treatment +to work flawlessly. This patch is absolutely trivial, as the integrated +USB-IDE bridge is already identified to be an "unusual" device, only the +bcdDevice is different (lower) to the bcdDeviceMin already included in +the kernel. +It is a Prolific 2507 bridge. + +T: Bus=02 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#= 4 Spd=480 MxCh= 0 +D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 +P: Vendor=067b ProdID=2507 Rev= 0.01 +S: Manufacturer=Prolific Technology Inc. +S: Product=ATAPI-6 Bridge Controller +S: SerialNumber=00000272 +C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA +I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage +E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms + + +Signed-off-by: Thomas Bartosik +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/storage/unusual_devs.h | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/usb/storage/unusual_devs.h ++++ b/drivers/usb/storage/unusual_devs.h +@@ -913,7 +913,9 @@ UNUSUAL_DEV( 0x066f, 0x8000, 0x0001, 0x0 + US_FL_FIX_CAPACITY ), + + /* Reported by Richard -=[]=- */ +-UNUSUAL_DEV( 0x067b, 0x2507, 0x0100, 0x0100, ++/* Change to bcdDeviceMin (0x0100 to 0x0001) reported by ++ * Thomas Bartosik */ ++UNUSUAL_DEV( 0x067b, 0x2507, 0x0001, 0x0100, + "Prolific Technology Inc.", + "Mass Storage Device", + US_SC_DEVICE, US_PR_DEVICE, NULL, + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:26 2009 +Message-Id: <20090320222926.575954209@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:33 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Dirk Hohndel +Subject: [patch 23/43] USB: Add Vendor/Product ID for new CDMA U727 to option driver +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-add-vendor-product-id-for-new-cdma-u727-to-option-driver.patch +Content-Length: 1687 +Lines: 34 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Dirk Hohndel + +commit 56a21827439a4d715b510bfaf488534e6f4ad2f8 upstream. + +* newer versions of the Novatel Wireless U727 CDMA 3G USB stick + have a different Product ID (0x5010); adding this ID makes them + work just fine with the option driver + +Signed-off-by: Dirk Hohndel +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -190,6 +190,7 @@ static int option_send_setup(struct tty + /* OVATION PRODUCTS */ + #define NOVATELWIRELESS_PRODUCT_MC727 0x4100 + #define NOVATELWIRELESS_PRODUCT_MC950D 0x4400 ++#define NOVATELWIRELESS_PRODUCT_U727 0x5010 + + /* FUTURE NOVATEL PRODUCTS */ + #define NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED 0X6000 +@@ -402,6 +403,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EU870D) }, /* Novatel EU850D/EU860D/EU870D */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC950D) }, /* Novatel MC930D/MC950D */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC727) }, /* Novatel MC727/U727/USB727 */ ++ { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_U727) }, /* Novatel MC727/U727/USB727 */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_FULLSPEED) }, /* Novatel EVDO product */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_FULLSPEED) }, /* Novatel HSPA product */ + { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) }, /* Novatel EVDO Embedded product */ + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:26 2009 +Message-Id: <20090320222926.721059657@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:34 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Albert Pauw +Subject: [patch 24/43] USB: option.c: add ZTE 622 modem device +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-option.c-add-zte-622-modem-device.patch +Content-Length: 1201 +Lines: 33 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Albert Pauw + +commit 9ea19b82f3126da4e47d6b94563a3c2cd586f6e2 upstream. + +Please consider this small patch for the usb option-card driver. +This patch adds the ZTE 622 usb modem device. + +Signed-off-by: Albert Pauw +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -282,6 +282,7 @@ static int option_send_setup(struct tty + + /* ZTE PRODUCTS */ + #define ZTE_VENDOR_ID 0x19d2 ++#define ZTE_PRODUCT_MF622 0x0001 + #define ZTE_PRODUCT_MF628 0x0015 + #define ZTE_PRODUCT_MF626 0x0031 + #define ZTE_PRODUCT_CDMA_TECH 0xfffe +@@ -499,6 +500,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */ + { USB_DEVICE(MAXON_VENDOR_ID, 0x6280) }, /* BP3-USB & BP3-EXT HSDPA */ + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) }, ++ { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:27 2009 +Message-Id: <20090320222926.883392924@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:35 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Achilleas Kotsis +Subject: [patch 25/43] USB: Add device id for Option GTM380 to option driver +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-add-device-id-for-option-gtm380-to-option-driver.patch +Content-Length: 1406 +Lines: 33 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Achilleas Kotsis + +commit e7f2f0d77a7b483a26054f29ba8393831b25a8a4 upstream. + +Option GTM380 in Modem mode uses Product ID 0x7201. This has been tested and works +on production systems for over 6 months. + +Signed-off-by: Achilleas Kotsis +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -89,6 +89,7 @@ static int option_send_setup(struct tty + #define OPTION_PRODUCT_ETNA_MODEM_GT 0x7041 + #define OPTION_PRODUCT_ETNA_MODEM_EX 0x7061 + #define OPTION_PRODUCT_ETNA_KOI_MODEM 0x7100 ++#define OPTION_PRODUCT_GTM380_MODEM 0x7201 + + #define HUAWEI_VENDOR_ID 0x12D1 + #define HUAWEI_PRODUCT_E600 0x1001 +@@ -319,6 +320,7 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_GT) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_MODEM_EX) }, + { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_ETNA_KOI_MODEM) }, ++ { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_GTM380_MODEM) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E220BIS, 0xff, 0xff, 0xff) }, + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:27 2009 +Message-Id: <20090320222927.035552913@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:36 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Dan Williams +Subject: [patch 26/43] USB: Option: let cdc-acm handle Sony Ericsson F3507g / Dell 5530 +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-option-let-cdc-acm-handle-sony-ericsson-f3507g-dell-5530.patch +Content-Length: 2291 +Lines: 46 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Dan Williams + +commit 0cc6bfe901b946df125d8e37186d8e45f876457d upstream. + +The generic cdc-acm driver is now the best one to handle Sony Ericsson +F3507g-based devices (which the Dell 5530 is a rebrand of), now that all +the pieces are in place (ie, cac477e8f1038c41b6f29d3161ce351462ef3df7). +Removing the IDs from option allows cdc-acm to handle the device. + +Signed-off-by: Dan Williams +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/option.c | 6 ------ + 1 file changed, 6 deletions(-) + +--- a/drivers/usb/serial/option.c ++++ b/drivers/usb/serial/option.c +@@ -288,10 +288,6 @@ static int option_send_setup(struct tty + #define ZTE_PRODUCT_MF626 0x0031 + #define ZTE_PRODUCT_CDMA_TECH 0xfffe + +-/* Ericsson products */ +-#define ERICSSON_VENDOR_ID 0x0bdb +-#define ERICSSON_PRODUCT_F3507G 0x1900 +- + #define BENQ_VENDOR_ID 0x04a5 + #define BENQ_PRODUCT_H10 0x4068 + +@@ -434,7 +430,6 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_CINGULAR) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */ + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_L) }, /* Dell Wireless HSDPA 5520 */ + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5520_MINICARD_GENERIC_I) }, /* Dell Wireless 5520 Voda I Mobile Broadband (3G HSDPA) Minicard */ +- { USB_DEVICE(DELL_VENDOR_ID, 0x8147) }, /* Dell Wireless 5530 Mobile Broadband (3G HSPA) Mini-Card */ + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_SPRINT) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_TELUS) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ + { USB_DEVICE(DELL_VENDOR_ID, DELL_PRODUCT_5730_MINICARD_VZW) }, /* Dell Wireless 5730 Mobile Broadband EVDO/HSPA Mini-Card */ +@@ -506,7 +501,6 @@ static struct usb_device_id option_ids[] + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF626) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628) }, + { USB_DEVICE(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH) }, +- { USB_DEVICE(ERICSSON_VENDOR_ID, ERICSSON_PRODUCT_F3507G) }, + { USB_DEVICE(BENQ_VENDOR_ID, BENQ_PRODUCT_H10) }, + { USB_DEVICE(0x1da5, 0x4515) }, /* BenQ H20 */ + { } /* Terminating entry */ + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:27 2009 +Message-Id: <20090320222927.184495306@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:37 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Moritz Muehlenhoff , + Phil Dibowitz +Subject: [patch 27/43] USB: Updated unusual-devs entry for USB mass storage on Nokia 6233 +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-updated-unusual-devs-entry-for-usb-mass-storage-on-nokia-6233.patch +Content-Length: 964 +Lines: 30 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Moritz Muehlenhoff + +commit 716a9c8561d9c50ec454f4fbd39a265892feda2c upstream. + +Current firmware revision 5.60 still behaves the same, +so update the quirk up a (non-existing) 99.99 revision. + +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=493415 + +Signed-off-by: Moritz Muehlenhoff +Tested-by: Jan Heitkoetter +Signed-off-by: Phil Dibowitz +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/storage/unusual_devs.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/usb/storage/unusual_devs.h ++++ b/drivers/usb/storage/unusual_devs.h +@@ -219,7 +219,7 @@ UNUSUAL_DEV( 0x0421, 0x047c, 0x0370, 0x + US_FL_MAX_SECTORS_64 ), + + /* Reported by Manuel Osdoba */ +-UNUSUAL_DEV( 0x0421, 0x0492, 0x0452, 0x0452, ++UNUSUAL_DEV( 0x0421, 0x0492, 0x0452, 0x9999, + "Nokia", + "Nokia 6233", + US_SC_DEVICE, US_PR_DEVICE, NULL, + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:27 2009 +Message-Id: <20090320222927.323747141@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:38 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Jan Dumon , + Phil Dibowitz +Subject: [patch 28/43] USB: unusual_devs: Add support for GI 0431 SD-Card interface +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-unusual_devs-add-support-for-gi-0431-sd-card-interface.patch +Content-Length: 3229 +Lines: 79 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Jan Dumon + +commit c497e715f93d148d751c055401568684eea0bf6b upstream. + +Enable the SD-Card interface on the GI 0431 HSUPA stick from Option. + +The unusual_devs.h entry is necessary because the device descriptor is +vendor-specific. That prevents usb-storage from binding to it as an +interface driver. + +T: Bus=07 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 15 Spd=480 MxCh= 0 +D: Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs= 1 +P: Vendor=0af0 ProdID=7501 Rev= 0.00 +S: Manufacturer=Option N.V. +S: Product=Globetrotter HSUPA Modem +C:* #Ifs=11 Cfg#= 1 Atr=a0 MxPwr=500mA +I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso +E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) +E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) +E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso +E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) +E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) +E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso +E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso +E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) +E: Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=09(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#= 9 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso +E: Ad=8a(I) Atr=03(Int.) MxPS= 64 Ivl=2ms +E: Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms +I:* If#=10 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage +E: Ad=0b(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms +E: Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms + +Signed-off-by: Jan Dumon +Signed-off-by: Phil Dibowitz +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/storage/unusual_devs.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/drivers/usb/storage/unusual_devs.h ++++ b/drivers/usb/storage/unusual_devs.h +@@ -1330,6 +1330,16 @@ UNUSUAL_DEV( 0x0af0, 0x7401, 0x0000, 0x0 + US_SC_DEVICE, US_PR_DEVICE, NULL, + 0 ), + ++/* Reported by Jan Dumon ++ * This device (wrongly) has a vendor-specific device descriptor. ++ * The entry is needed so usb-storage can bind to it's mass-storage ++ * interface as an interface driver */ ++UNUSUAL_DEV( 0x0af0, 0x7501, 0x0000, 0x0000, ++ "Option", ++ "GI 0431 SD-Card", ++ US_SC_DEVICE, US_PR_DEVICE, NULL, ++ 0 ), ++ + #ifdef CONFIG_USB_STORAGE_ISD200 + UNUSUAL_DEV( 0x0bf6, 0xa001, 0x0100, 0x0110, + "ATI", + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:27 2009 +Message-Id: <20090320222927.486077903@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:39 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Axel Wachtler , + Robert Richter +Subject: [patch 29/43] USB: serial: add FTDI USB/Serial converter devices +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-serial-add-ftdi-usb-serial-converter-devices.patch +Content-Length: 1850 +Lines: 60 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Axel Wachtler + +commit 7f82b6dd7015aabca2fd55fb690248f742cd67f3 upstream. + +Add the following devices to the USB FTDI SIO device table: + + Bus 001 Device 009: ID 03eb:2109 Atmel Corp. + http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4187 + + Bus 001 Device 008: ID 1cf1:0001 + http://www.dresden-elektronik.de/shop/prod75.html + + Bus 001 Device 007: ID 1c1f:0004 + http://www.dresden-elektronik.de/shop/prod64.html + +Signed-off-by: Axel Wachtler +Signed-off-by: Robert Richter +Signed-off-by: Andrew Morton +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/ftdi_sio.c | 3 +++ + drivers/usb/serial/ftdi_sio.h | 13 +++++++++++++ + 2 files changed, 16 insertions(+) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -660,6 +660,9 @@ static struct usb_device_id id_table_com + { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, ++ { USB_DEVICE(ATMEL_VID, STK541_PID) }, ++ { USB_DEVICE(DE_VID, STB_PID) }, ++ { USB_DEVICE(DE_VID, WHT_PID) }, + { }, /* Optional parameter entry */ + { } /* Terminating entry */ + }; +--- a/drivers/usb/serial/ftdi_sio.h ++++ b/drivers/usb/serial/ftdi_sio.h +@@ -881,6 +881,19 @@ + #define RATOC_PRODUCT_ID_USB60F 0xb020 + + /* ++ * Atmel STK541 ++ */ ++#define ATMEL_VID 0x03eb /* Vendor ID */ ++#define STK541_PID 0x2109 /* Zigbee Controller */ ++ ++/* ++ * Dresden Elektronic Sensor Terminal Board ++ */ ++#define DE_VID 0x1cf1 /* Vendor ID */ ++#define STB_PID 0x0001 /* Sensor Terminal Board */ ++#define WHT_PID 0x0004 /* Wireless Handheld Terminal */ ++ ++/* + * BmRequestType: 1100 0000b + * bRequest: FTDI_E2_READ + * wValue: 0 + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:27 2009 +Message-Id: <20090320222927.635390673@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:40 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Michael Hennerich , + Bryan Wu +Subject: [patch 30/43] USB: serial: ftdi: enable UART detection on gnICE JTAG adaptors blacklist interface0 +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-serial-ftdi-enable-uart-detection-on-gnice-jtag-adaptors-blacklist-interface0.patch +Content-Length: 1285 +Lines: 42 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Michael Hennerich + +commit b0d659002168146ec6b03d1ef062d8dcf05ff510 upstream. + +Signed-off-by: Michael Hennerich +Signed-off-by: Bryan Wu +Signed-off-by: Andrew Morton +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/ftdi_sio.c | 2 ++ + drivers/usb/serial/ftdi_sio.h | 7 +++++++ + 2 files changed, 9 insertions(+) + +--- a/drivers/usb/serial/ftdi_sio.c ++++ b/drivers/usb/serial/ftdi_sio.c +@@ -663,6 +663,8 @@ static struct usb_device_id id_table_com + { USB_DEVICE(ATMEL_VID, STK541_PID) }, + { USB_DEVICE(DE_VID, STB_PID) }, + { USB_DEVICE(DE_VID, WHT_PID) }, ++ { USB_DEVICE(ADI_VID, ADI_GNICE_PID), ++ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk }, + { }, /* Optional parameter entry */ + { } /* Terminating entry */ + }; +--- a/drivers/usb/serial/ftdi_sio.h ++++ b/drivers/usb/serial/ftdi_sio.h +@@ -894,6 +894,13 @@ + #define WHT_PID 0x0004 /* Wireless Handheld Terminal */ + + /* ++ * Blackfin gnICE JTAG ++ * http://docs.blackfin.uclinux.org/doku.php?id=hw:jtag:gnice ++ */ ++#define ADI_VID 0x0456 ++#define ADI_GNICE_PID 0xF000 ++ ++/* + * BmRequestType: 1100 0000b + * bRequest: FTDI_E2_READ + * wValue: 0 + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:27 2009 +Message-Id: <20090320222927.797760877@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:41 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk +Subject: [patch 31/43] USB: serial: new cp2101 device id +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-serial-new-cp2101-device-id.patch +Content-Length: 861 +Lines: 22 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Robert M. Kenney + +commit c6535668798b0644e1af5934c2aec0e912280449 upstream. + +From: Robert M. Kenney +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/serial/cp2101.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/serial/cp2101.c ++++ b/drivers/usb/serial/cp2101.c +@@ -79,6 +79,7 @@ static struct usb_device_id id_table [] + { USB_DEVICE(0x10C4, 0x814A) }, /* West Mountain Radio RIGblaster P&P */ + { USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */ + { USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */ ++ { USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */ + { USB_DEVICE(0x10C4, 0x81A6) }, /* ThinkOptics WavIt */ + { USB_DEVICE(0x10C4, 0x81AC) }, /* MSD Dash Hawk */ + { USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */ + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:28 2009 +Message-Id: <20090320222927.951096921@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:42 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk +Subject: [patch 32/43] USB: usbtmc: fix stupid bug in open() +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-usbtmc-fix-stupid-bug-in-open.patch +Content-Length: 866 +Lines: 34 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Greg Kroah-Hartman + +commit 5b10916ea0a62920204517e1c4ce14560b4f96ab upstream. + +open() will never succeed, as we always return -ENODEV. Fix this +obvious bug. + +Thanks to Jouni Ryno for reporting it. + +Reported-by: Jouni Ryno +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/class/usbtmc.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/usb/class/usbtmc.c ++++ b/drivers/usb/class/usbtmc.c +@@ -105,12 +105,13 @@ static int usbtmc_open(struct inode *ino + { + struct usb_interface *intf; + struct usbtmc_device_data *data; +- int retval = -ENODEV; ++ int retval = 0; + + intf = usb_find_interface(&usbtmc_driver, iminor(inode)); + if (!intf) { + printk(KERN_ERR KBUILD_MODNAME + ": can not find device for minor %d", iminor(inode)); ++ retval = -ENODEV; + goto exit; + } + + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:28 2009 +Message-Id: <20090320222928.107324607@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:43 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk +Subject: [patch 33/43] USB: usbtmc: add protocol 1 support +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-usbtmc-add-protocol-1-support.patch +Content-Length: 781 +Lines: 27 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Greg Kroah-Hartman + +commit 228dd05dbfdd0fced8ab1a28ed73b500ba6bb0a6 upstream. + +The driver already supports the 1 protocol support, so just add it to +the MODULE_DEVICE_TABLE entry so it properly picks up these devices. + +Thanks to Jouni Rynö for pointing this out. + +Reported-by: Jouni Ryno +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/class/usbtmc.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/usb/class/usbtmc.c ++++ b/drivers/usb/class/usbtmc.c +@@ -49,6 +49,7 @@ + + static struct usb_device_id usbtmc_devices[] = { + { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 0), }, ++ { USB_INTERFACE_INFO(USB_CLASS_APP_SPEC, 3, 1), }, + { 0, } /* terminating entry */ + }; + MODULE_DEVICE_TABLE(usb, usbtmc_devices); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:28 2009 +Message-Id: <20090320222928.261453123@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:44 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Alan Stern +Subject: [patch 34/43] USB: usbfs: keep async URBs until the device file is closed +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-usbfs-keep-async-urbs-until-the-device-file-is-closed.patch +Content-Length: 2120 +Lines: 65 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Alan Stern + +commit 6ff10464096540e14d7575a72c50d0316d003714 upstream. + +The usbfs driver manages a list of completed asynchronous URBs. But +it is too eager to free the entries on this list: destroy_async() gets +called whenever an interface is unbound or a device is removed, and it +deallocates the outstanding struct async entries for all URBs on that +interface or device. This is wrong; the user program should be able +to reap an URB any time after it has completed, regardless of whether +or not the interface is still bound or the device is still present. + +This patch (as1222) moves the code for deallocating the completed list +entries from destroy_async() to usbdev_release(). The outstanding +entries won't be freed until the user program has closed the device +file, thereby eliminating any possibility that the remaining URBs +might still be reaped. + +This fixes a bug in which a program can hang in the USBDEVFS_REAPURB +ioctl when the device is unplugged. + +Reported-and-tested-by: Martin Poupe +Signed-off-by: Alan Stern +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/core/devio.c | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +--- a/drivers/usb/core/devio.c ++++ b/drivers/usb/core/devio.c +@@ -359,11 +359,6 @@ static void destroy_async(struct dev_sta + spin_lock_irqsave(&ps->lock, flags); + } + spin_unlock_irqrestore(&ps->lock, flags); +- as = async_getcompleted(ps); +- while (as) { +- free_async(as); +- as = async_getcompleted(ps); +- } + } + + static void destroy_async_on_interface(struct dev_state *ps, +@@ -642,6 +637,7 @@ static int usbdev_release(struct inode * + struct dev_state *ps = file->private_data; + struct usb_device *dev = ps->dev; + unsigned int ifnum; ++ struct async *as; + + usb_lock_device(dev); + +@@ -660,6 +656,12 @@ static int usbdev_release(struct inode * + usb_unlock_device(dev); + usb_put_dev(dev); + put_pid(ps->disc_pid); ++ ++ as = async_getcompleted(ps); ++ while (as) { ++ free_async(as); ++ as = async_getcompleted(ps); ++ } + kfree(ps); + return 0; + } + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:28 2009 +Message-Id: <20090320222928.408831283@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:45 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Alan Stern , + David Brownell +Subject: [patch 35/43] USB: EHCI: expedite unlinks when the root hub is suspended +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-ehci-expedite-unlinks-when-the-root-hub-is-suspended.patch +Content-Length: 1437 +Lines: 38 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Alan Stern + +commit 391016f6e2fe3b9979b4c6880a76e5e434d6947c upstream. + +This patch (as1225) fixes a bug in ehci-hcd. The condition for +whether unlinked QHs can become IDLE should not be that the controller +is halted, but rather that the controller isn't running. In other +words when the root hub is suspended, the hardware doesn't own any +QHs. + +This fixes a problem that can show up during hibernation: If a QH is +only partially unlinked when the root hub is frozen, then when the +root hub is thawed the QH won't be in the IDLE state. As a result it +can't be used properly for new URB submissions. + +Signed-off-by: Alan Stern +Reported-by: Brandon Philips +Tested-by: Brandon Philips +Acked-by: David Brownell +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/ehci-q.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/usb/host/ehci-q.c ++++ b/drivers/usb/host/ehci-q.c +@@ -1095,7 +1095,8 @@ static void start_unlink_async (struct e + prev->qh_next = qh->qh_next; + wmb (); + +- if (unlikely (ehci_to_hcd(ehci)->state == HC_STATE_HALT)) { ++ /* If the controller isn't running, we don't have to wait for it */ ++ if (unlikely(!HC_IS_RUNNING(ehci_to_hcd(ehci)->state))) { + /* if (unlikely (qh->reclaim != 0)) + * this will recurse, probably not much + */ + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:28 2009 +Message-Id: <20090320222928.560756537@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:46 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Karsten Wiese , + David Brownell +Subject: [patch 36/43] USB: EHCI: Fix isochronous URB leak +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=usb-ehci-fix-isochronous-urb-leak.patch +Content-Length: 2613 +Lines: 76 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Karsten Wiese + +commit 508db8c954d55ed30f870d2c24d741ba6269d13c upstream. + +ehci-hcd uses usb_get_urb() and usb_put_urb() in an unbalanced way causing +isochronous URB's kref.counts incrementing once per usb_submit_urb() call. +The culprit is *usb being set to NULL when usb_put_urb() is called after URB +is given back. +Due to other fixes there is no need for ehci-hcd to deal with usb_get_urb() +nor usb_put_urb() anymore, so patch removes their usages in ehci-hcd. +Patch also makes ehci_to_hcd(ehci)->self.bandwidth_allocated adjust, if a +stream finishes. + +Signed-off-by: Karsten Wiese +Cc: David Brownell +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/usb/host/ehci-sched.c | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +--- a/drivers/usb/host/ehci-sched.c ++++ b/drivers/usb/host/ehci-sched.c +@@ -1536,7 +1536,7 @@ itd_link_urb ( + struct ehci_itd, itd_list); + list_move_tail (&itd->itd_list, &stream->td_list); + itd->stream = iso_stream_get (stream); +- itd->urb = usb_get_urb (urb); ++ itd->urb = urb; + itd_init (ehci, stream, itd); + } + +@@ -1645,7 +1645,7 @@ itd_complete ( + (void) disable_periodic(ehci); + ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; + +- if (unlikely (list_empty (&stream->td_list))) { ++ if (unlikely(list_is_singular(&stream->td_list))) { + ehci_to_hcd(ehci)->self.bandwidth_allocated + -= stream->bandwidth; + ehci_vdbg (ehci, +@@ -1656,7 +1656,6 @@ itd_complete ( + iso_stream_put (ehci, stream); + + done: +- usb_put_urb(urb); + itd->urb = NULL; + if (ehci->clock_frame != itd->frame || itd->index[7] != -1) { + /* OK to recycle this ITD now. */ +@@ -1949,7 +1948,7 @@ sitd_link_urb ( + struct ehci_sitd, sitd_list); + list_move_tail (&sitd->sitd_list, &stream->td_list); + sitd->stream = iso_stream_get (stream); +- sitd->urb = usb_get_urb (urb); ++ sitd->urb = urb; + + sitd_patch(ehci, stream, sitd, sched, packet); + sitd_link (ehci, (next_uframe >> 3) % ehci->periodic_size, +@@ -2034,7 +2033,7 @@ sitd_complete ( + (void) disable_periodic(ehci); + ehci_to_hcd(ehci)->self.bandwidth_isoc_reqs--; + +- if (list_empty (&stream->td_list)) { ++ if (list_is_singular(&stream->td_list)) { + ehci_to_hcd(ehci)->self.bandwidth_allocated + -= stream->bandwidth; + ehci_vdbg (ehci, +@@ -2045,7 +2044,6 @@ sitd_complete ( + iso_stream_put (ehci, stream); + /* OK to recycle this SITD now that its completion callback ran. */ + done: +- usb_put_urb(urb); + sitd->urb = NULL; + sitd->stream = NULL; + list_move(&sitd->sitd_list, &stream->free_list); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:28 2009 +Message-Id: <20090320222928.729556895@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:47 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org, + greg@kroah.com +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + grant.likely@secretlab.ca, + afleming@freescale.com, + linuxppc-dev@ozlabs.org, + Johns Daniel +Subject: [patch 37/43] powerpc: Remove extra semicolon in fsl_soc.c +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=powerpc-remove-extra-semicolon-in-fsl_soc.c.patch +Content-Length: 860 +Lines: 29 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Johns Daniel + +TSEC/MDIO will not work with older device trees because of a semicolon +at the end of a macro resulting in an empty for loop body. + +This fix only applies to 2.6.28; this code is gone in 2.6.29, according +to Grant Likely! + +Signed-off-by: Johns Daniel +Acked-by: Grant Likely +Signed-off-by: Greg Kroah-Hartman + + +--- + arch/powerpc/sysdev/fsl_soc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/powerpc/sysdev/fsl_soc.c ++++ b/arch/powerpc/sysdev/fsl_soc.c +@@ -257,7 +257,7 @@ static int __init gfar_mdio_of_init(void + gfar_mdio_of_init_one(np); + + /* try the deprecated version */ +- for_each_compatible_node(np, "mdio", "gianfar"); ++ for_each_compatible_node(np, "mdio", "gianfar") + gfar_mdio_of_init_one(np); + + return 0; + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:29 2009 +Message-Id: <20090320222928.879548230@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:48 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Jesse Barnes , + Eric Anholt , + Dave Airlie +Subject: [patch 38/43] drm/i915: set vblank enabled flag correctly across IRQ install/uninstall +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=drm-i915-set-vblank-enabled-flag-correctly-across-irq-install-uninstall.patch +Content-Length: 2301 +Lines: 68 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Jesse Barnes + +commit dc1336ff4fe08ae7cfe8301bfd7f0b2cfd31d20a upstream. + +In the absence of kernel mode setting, many drivers disable IRQs across VT +switch. The core DRM vblank code is missing a check for this case however; +even after IRQ disable, the vblank code will still have the vblank_enabled +flag set, so unless we track the fact that they're disabled at IRQ uninstall +time, when we VT switch back in we won't actually re-enable them, which means +any apps waiting on vblank before the switch will hang. + +This patch does that and also adds a sanity check to the wait condition to +look for the irq_enabled flag in general, as well as adding a wakeup to the +IRQ uninstall path. + +Fixes fdo bug #18879 with compiz hangs at VT switch. + +Signed-off-by: Jesse Barnes +Signed-off-by: Eric Anholt +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/drm_irq.c | 18 +++++++++++++++--- + 1 file changed, 15 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/drm_irq.c ++++ b/drivers/gpu/drm/drm_irq.c +@@ -259,7 +259,8 @@ EXPORT_SYMBOL(drm_irq_install); + */ + int drm_irq_uninstall(struct drm_device * dev) + { +- int irq_enabled; ++ unsigned long irqflags; ++ int irq_enabled, i; + + if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) + return -EINVAL; +@@ -269,6 +270,16 @@ int drm_irq_uninstall(struct drm_device + dev->irq_enabled = 0; + mutex_unlock(&dev->struct_mutex); + ++ /* ++ * Wake up any waiters so they don't hang. ++ */ ++ spin_lock_irqsave(&dev->vbl_lock, irqflags); ++ for (i = 0; i < dev->num_crtcs; i++) { ++ DRM_WAKEUP(&dev->vbl_queue[i]); ++ dev->vblank_enabled[i] = 0; ++ } ++ spin_unlock_irqrestore(&dev->vbl_lock, irqflags); ++ + if (!irq_enabled) + return -EINVAL; + +@@ -617,8 +628,9 @@ int drm_wait_vblank(struct drm_device *d + DRM_DEBUG("waiting on vblank count %d, crtc %d\n", + vblwait->request.sequence, crtc); + DRM_WAIT_ON(ret, dev->vbl_queue[crtc], 3 * DRM_HZ, +- ((drm_vblank_count(dev, crtc) +- - vblwait->request.sequence) <= (1 << 23))); ++ (((drm_vblank_count(dev, crtc) - ++ vblwait->request.sequence) <= (1 << 23)) || ++ !dev->irq_enabled)); + + if (ret != -EINTR) { + struct timeval now; + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:29 2009 +Message-Id: <20090320222929.036450372@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:49 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Jesse Barnes , + Eric Anholt , + Dave Airlie +Subject: [patch 39/43] drm/i915: dont enable vblanks on disabled pipes +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=drm-i915-don-t-enable-vblanks-on-disabled-pipes.patch +Content-Length: 1062 +Lines: 33 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Jesse Barnes + +commit 71e0ffa599f54058d9b8724b4b14d0486751681d upstream. + +In some cases userland may be confused and try to wait on vblank events from +pipes that aren't actually enabled. We shouldn't allow this, so return +-EINVAL if the pipe isn't on. + +Signed-off-by: Jesse Barnes +Signed-off-by: Eric Anholt +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_irq.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +--- a/drivers/gpu/drm/i915/i915_irq.c ++++ b/drivers/gpu/drm/i915/i915_irq.c +@@ -400,6 +400,12 @@ int i915_enable_vblank(struct drm_device + { + drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; + unsigned long irqflags; ++ int pipeconf_reg = (pipe == 0) ? PIPEACONF : PIPEBCONF; ++ u32 pipeconf; ++ ++ pipeconf = I915_READ(pipeconf_reg); ++ if (!(pipeconf & PIPEACONF_ENABLE)) ++ return -EINVAL; + + spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); + if (IS_I965G(dev)) + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:29 2009 +Message-Id: <20090320222929.211666354@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:50 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Eric Anholt , + Dave Airlie +Subject: [patch 40/43] drm/i915: Dont double-unpin buffers if we take a signal in evict_everything(). +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=drm-i915-don-t-double-unpin-buffers-if-we-take-a-signal-in-evict_everything.patch +Content-Length: 837 +Lines: 27 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Eric Anholt + +commit b117763627ef4d24086801dd5f74c9eb2f487790 upstream. + +We haven't seen this in practice, but it was visible when looking at a bug +report from when i915_gem_evict_everything() was broken and would always +return error. + +Signed-off-by: Eric Anholt +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_gem.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -2036,6 +2036,7 @@ i915_gem_execbuffer(struct drm_device *d + /* unpin all of our buffers */ + for (i = 0; i < pinned; i++) + i915_gem_object_unpin(object_list[i]); ++ pinned = 0; + + /* evict everyone we can from the aperture */ + ret = i915_gem_evict_everything(dev); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:29 2009 +Message-Id: <20090320222929.372941874@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:51 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Eric Anholt , + Dave Airlie +Subject: [patch 41/43] drm/i915: Dont print to dmesg when taking signal during object_pin. +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=drm-i915-don-t-print-to-dmesg-when-taking-signal-during-object_pin.patch +Content-Length: 1230 +Lines: 39 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Eric Anholt + +commit f1acec933848219c402c165686677b1c307407f8 upstream. + +This showed up in logs where people had a hung chip, so pinning was blocked +on the chip unpinning other buffers, and the X Server took its scheduler +signal during that time. + +Signed-off-by: Eric Anholt +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_gem.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -2029,7 +2029,8 @@ i915_gem_execbuffer(struct drm_device *d + + /* error other than GTT full, or we've already tried again */ + if (ret != -ENOMEM || pin_tries >= 1) { +- DRM_ERROR("Failed to pin buffers %d\n", ret); ++ if (ret != -ERESTARTSYS) ++ DRM_ERROR("Failed to pin buffers %d\n", ret); + goto err; + } + +@@ -2179,7 +2180,8 @@ i915_gem_object_pin(struct drm_gem_objec + if (obj_priv->gtt_space == NULL) { + ret = i915_gem_object_bind_to_gtt(obj, alignment); + if (ret != 0) { +- DRM_ERROR("Failure to bind: %d", ret); ++ if (ret != -ERESTARTSYS) ++ DRM_ERROR("Failure to bind: %d", ret); + return ret; + } + } + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:29 2009 +Message-Id: <20090320222929.545390755@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:52 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Eric Anholt , + Dave Airlie +Subject: [patch 42/43] drm/i915: Dont allow objects to get bound while VT switched. +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=drm-i915-don-t-allow-objects-to-get-bound-while-vt-switched.patch +Content-Length: 2050 +Lines: 67 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Eric Anholt + +commit 9bb2d6f94aeb9a185d69aedbd19421b6da4e3309 upstream. + +This avoids a BUG_ON in the enter_vt path due to objects being in the GTT +when we shouldn't have ever let them be (as we're not supposed to touch the +device during that time). + +This was triggered by a change in the 2D driver to use the GTT mapping of +objects after pinning them to improve software fallback performance. + +Signed-off-by: Eric Anholt +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/gpu/drm/i915/i915_gem.c | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +--- a/drivers/gpu/drm/i915/i915_gem.c ++++ b/drivers/gpu/drm/i915/i915_gem.c +@@ -1161,6 +1161,8 @@ i915_gem_object_bind_to_gtt(struct drm_g + struct drm_mm_node *free_space; + int page_count, ret; + ++ if (dev_priv->mm.suspended) ++ return -EBUSY; + if (alignment == 0) + alignment = PAGE_SIZE; + if (alignment & (PAGE_SIZE - 1)) { +@@ -2180,7 +2182,7 @@ i915_gem_object_pin(struct drm_gem_objec + if (obj_priv->gtt_space == NULL) { + ret = i915_gem_object_bind_to_gtt(obj, alignment); + if (ret != 0) { +- if (ret != -ERESTARTSYS) ++ if (ret != -EBUSY && ret != -ERESTARTSYS) + DRM_ERROR("Failure to bind: %d", ret); + return ret; + } +@@ -2703,20 +2705,21 @@ i915_gem_entervt_ioctl(struct drm_device + dev_priv->mm.wedged = 0; + } + +- ret = i915_gem_init_ringbuffer(dev); +- if (ret != 0) +- return ret; +- + dev_priv->mm.gtt_mapping = io_mapping_create_wc(dev->agp->base, + dev->agp->agp_info.aper_size + * 1024 * 1024); + + mutex_lock(&dev->struct_mutex); ++ dev_priv->mm.suspended = 0; ++ ++ ret = i915_gem_init_ringbuffer(dev); ++ if (ret != 0) ++ return ret; ++ + BUG_ON(!list_empty(&dev_priv->mm.active_list)); + BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); + BUG_ON(!list_empty(&dev_priv->mm.inactive_list)); + BUG_ON(!list_empty(&dev_priv->mm.request_list)); +- dev_priv->mm.suspended = 0; + mutex_unlock(&dev->struct_mutex); + + drm_irq_install(dev); + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:29 2009 +Message-Id: <20090320222929.694116500@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:53 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk, + Randy Dunlap +Subject: [patch 43/43] menu: fix embedded menu snafu +References: <20090320222810.386844059@mini.kroah.org> +Content-Disposition: inline; filename=menu-fix-embedded-menu-snafu.patch +Content-Length: 2610 +Lines: 80 + +2.6.28-stable review patch. If anyone has any objections, please let us know. + +------------------ + +From: Randy Dunlap + +commit b943c460ff8556a193b28e2145b513f8b978e869 upstream. + +The COMPAT_BRK kconfig symbol does not depend on EMBEDDED, but it is in +the midst of the EMBEDDED menu symbols, so it mucks up the EMBEDDED menu. +Fix by moving it to just after all of the EMBEDDED menu symbols. Also, +ANON_INODES has a similar problem, so move it to just above the EMBEDDED +menu items since it is used in the EMBEDDED menu. + +Signed-off-by: Randy Dunlap +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + init/Kconfig | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +--- a/init/Kconfig ++++ b/init/Kconfig +@@ -538,6 +538,9 @@ config CC_OPTIMIZE_FOR_SIZE + config SYSCTL + bool + ++config ANON_INODES ++ bool ++ + menuconfig EMBEDDED + bool "Configure standard kernel features (for small systems)" + help +@@ -643,18 +646,6 @@ config PCSPKR_PLATFORM + This option allows to disable the internal PC-Speaker + support, saving some memory. + +-config COMPAT_BRK +- bool "Disable heap randomization" +- default y +- help +- Randomizing heap placement makes heap exploits harder, but it +- also breaks ancient binaries (including anything libc5 based). +- This option changes the bootup default to heap randomization +- disabled, and can be overriden runtime by setting +- /proc/sys/kernel/randomize_va_space to 2. +- +- On non-ancient distros (post-2000 ones) N is usually a safe choice. +- + config BASE_FULL + default y + bool "Enable full-sized data structures for core" if EMBEDDED +@@ -672,9 +663,6 @@ config FUTEX + support for "fast userspace mutexes". The resulting kernel may not + run glibc-based applications correctly. + +-config ANON_INODES +- bool +- + config EPOLL + bool "Enable eventpoll support" if EMBEDDED + default y +@@ -760,6 +748,18 @@ config SLUB_DEBUG + SLUB sysfs support. /sys/slab will not exist and there will be + no support for cache validation etc. + ++config COMPAT_BRK ++ bool "Disable heap randomization" ++ default y ++ help ++ Randomizing heap placement makes heap exploits harder, but it ++ also breaks ancient binaries (including anything libc5 based). ++ This option changes the bootup default to heap randomization ++ disabled, and can be overriden runtime by setting ++ /proc/sys/kernel/randomize_va_space to 2. ++ ++ On non-ancient distros (post-2000 ones) N is usually a safe choice. ++ + choice + prompt "Choose SLAB allocator" + default SLUB + + +From gregkh@mini.kroah.org Fri Mar 20 15:29:22 2009 +Message-Id: <20090320222810.386844059@mini.kroah.org> +User-Agent: quilt/0.48-1 +Date: Fri, 20 Mar 2009 15:28:10 -0700 +From: Greg KH +To: linux-kernel@vger.kernel.org, + stable@kernel.org +Cc: Justin Forbes , + Zwane Mwaikambo , + Theodore Ts'o , + Randy Dunlap , + Dave Jones , + Chuck Wolber , + Chris Wedgwood , + Michael Krufky , + Chuck Ebbert , + Domenico Andreoli , + Willy Tarreau , + Rodrigo Rubira Branco , + Jake Edge , + Eugene Teo , + torvalds@linux-foundation.org, + akpm@linux-foundation.org, + alan@lxorguk.ukuu.org.uk +Subject: [patch 00/43] 2.6.28.9-stable review +Content-Length: 3070 +Lines: 58 + +This is the start of the stable review cycle for the 2.6.28.9 release. +There are 43 patches in this series, all will be posted as a response to +this one. If anyone has any issues with these being applied, please let +us know. If anyone is a maintainer of the proper subsystem, and wants +to add a Signed-off-by: line to the patch, please respond with it. + +These patches are sent out with a number of different people on the +Cc: line. If you wish to be a reviewer, please email stable@kernel.org +to add your name to the list. If you want to be off the reviewer list, +also email us. + +Responses should be made by Monday, March 23, 20:00:00 UTC. +Anything received after that time might be too late. + +The whole patch series can be found in one patch at: + kernel.org/pub/linux/kernel/v2.6/stable-review/patch-2.6.28.9-rc1.gz +and the diffstat can be found below. + +thanks, + +greg k-h + + Makefile | 5 ++- + arch/ia64/Kconfig | 3 +- + arch/powerpc/sysdev/fsl_soc.c | 2 +- + arch/s390/lib/div64.c | 2 +- + arch/x86/include/asm/msr-index.h | 29 ++++++++++++++++++ + arch/x86/kernel/cpu/intel.c | 13 ++++++++ + drivers/ata/ata_piix.c | 37 +++++++++++++++++++++++ + drivers/gpu/drm/drm_irq.c | 18 +++++++++-- + drivers/gpu/drm/i915/i915_gem.c | 20 ++++++++---- + drivers/gpu/drm/i915/i915_irq.c | 6 ++++ + drivers/md/dm-crypt.c | 43 +++++++++++++++++++------- + drivers/md/dm-io.c | 2 + + drivers/md/dm-ioctl.c | 3 +- + drivers/md/dm.c | 32 ++++++++++++-------- + drivers/media/video/cx23885/cx23885-417.c | 3 +- + drivers/media/video/cx23885/cx23885-video.c | 5 ++- + drivers/misc/thinkpad_acpi.c | 8 ++-- + drivers/usb/class/usbtmc.c | 4 ++- + drivers/usb/core/devio.c | 12 ++++--- + drivers/usb/host/ehci-q.c | 3 +- + drivers/usb/host/ehci-sched.c | 10 ++---- + drivers/usb/serial/cp2101.c | 1 + + drivers/usb/serial/ftdi_sio.c | 5 +++ + drivers/usb/serial/ftdi_sio.h | 20 ++++++++++++ + drivers/usb/serial/option.c | 12 ++++---- + drivers/usb/storage/unusual_devs.h | 16 +++++++++- + fs/aio.c | 37 +++++++++++++++++------ + fs/nfsd/nfs4xdr.c | 1 + + include/linux/capability.h | 6 ++- + init/Kconfig | 30 +++++++++--------- + sound/core/oss/pcm_oss.c | 4 +- + sound/core/sgbuf.c | 7 ++-- + sound/isa/opl3sa2.c | 18 +++++++---- + sound/pci/hda/hda_intel.c | 39 ++++++++++++++++-------- + sound/pci/mixart/mixart.c | 1 + + 35 files changed, 337 insertions(+), 120 deletions(-) + diff --git a/queue-2.6.28/menu-fix-embedded-menu-snafu.patch b/releases/2.6.28.9/menu-fix-embedded-menu-snafu.patch similarity index 100% rename from queue-2.6.28/menu-fix-embedded-menu-snafu.patch rename to releases/2.6.28.9/menu-fix-embedded-menu-snafu.patch diff --git a/queue-2.6.28/move-cc-option-to-below-arch-specific-setup.patch b/releases/2.6.28.9/move-cc-option-to-below-arch-specific-setup.patch similarity index 100% rename from queue-2.6.28/move-cc-option-to-below-arch-specific-setup.patch rename to releases/2.6.28.9/move-cc-option-to-below-arch-specific-setup.patch diff --git a/queue-2.6.28/nfsd-nfsd-should-drop-cap_mknod-for-non-root.patch b/releases/2.6.28.9/nfsd-nfsd-should-drop-cap_mknod-for-non-root.patch similarity index 100% rename from queue-2.6.28/nfsd-nfsd-should-drop-cap_mknod-for-non-root.patch rename to releases/2.6.28.9/nfsd-nfsd-should-drop-cap_mknod-for-non-root.patch diff --git a/queue-2.6.28/nfsd-provide-encode-routine-for-op_openattr.patch b/releases/2.6.28.9/nfsd-provide-encode-routine-for-op_openattr.patch similarity index 100% rename from queue-2.6.28/nfsd-provide-encode-routine-for-op_openattr.patch rename to releases/2.6.28.9/nfsd-provide-encode-routine-for-op_openattr.patch diff --git a/queue-2.6.28/powerpc-remove-extra-semicolon-in-fsl_soc.c.patch b/releases/2.6.28.9/powerpc-remove-extra-semicolon-in-fsl_soc.c.patch similarity index 100% rename from queue-2.6.28/powerpc-remove-extra-semicolon-in-fsl_soc.c.patch rename to releases/2.6.28.9/powerpc-remove-extra-semicolon-in-fsl_soc.c.patch diff --git a/queue-2.6.28/s390-__div64_31-broken-for-config_march_g5.patch b/releases/2.6.28.9/s390-__div64_31-broken-for-config_march_g5.patch similarity index 100% rename from queue-2.6.28/s390-__div64_31-broken-for-config_march_g5.patch rename to releases/2.6.28.9/s390-__div64_31-broken-for-config_march_g5.patch diff --git a/queue-2.6.28/series b/releases/2.6.28.9/series similarity index 97% rename from queue-2.6.28/series rename to releases/2.6.28.9/series index 1ccc3fcd5f0..e168477976a 100644 --- a/queue-2.6.28/series +++ b/releases/2.6.28.9/series @@ -41,3 +41,4 @@ drm-i915-don-t-double-unpin-buffers-if-we-take-a-signal-in-evict_everything.patc drm-i915-don-t-print-to-dmesg-when-taking-signal-during-object_pin.patch drm-i915-don-t-allow-objects-to-get-bound-while-vt-switched.patch menu-fix-embedded-menu-snafu.patch +ecryptfs-allocate-a-variable-number-of-pages-for-file-headers.patch diff --git a/queue-2.6.28/thinkpad-acpi-fix-module-autoloading-for-older-models.patch b/releases/2.6.28.9/thinkpad-acpi-fix-module-autoloading-for-older-models.patch similarity index 100% rename from queue-2.6.28/thinkpad-acpi-fix-module-autoloading-for-older-models.patch rename to releases/2.6.28.9/thinkpad-acpi-fix-module-autoloading-for-older-models.patch diff --git a/queue-2.6.28/usb-add-device-id-for-option-gtm380-to-option-driver.patch b/releases/2.6.28.9/usb-add-device-id-for-option-gtm380-to-option-driver.patch similarity index 100% rename from queue-2.6.28/usb-add-device-id-for-option-gtm380-to-option-driver.patch rename to releases/2.6.28.9/usb-add-device-id-for-option-gtm380-to-option-driver.patch diff --git a/queue-2.6.28/usb-add-vendor-product-id-for-new-cdma-u727-to-option-driver.patch b/releases/2.6.28.9/usb-add-vendor-product-id-for-new-cdma-u727-to-option-driver.patch similarity index 100% rename from queue-2.6.28/usb-add-vendor-product-id-for-new-cdma-u727-to-option-driver.patch rename to releases/2.6.28.9/usb-add-vendor-product-id-for-new-cdma-u727-to-option-driver.patch diff --git a/queue-2.6.28/usb-ehci-expedite-unlinks-when-the-root-hub-is-suspended.patch b/releases/2.6.28.9/usb-ehci-expedite-unlinks-when-the-root-hub-is-suspended.patch similarity index 100% rename from queue-2.6.28/usb-ehci-expedite-unlinks-when-the-root-hub-is-suspended.patch rename to releases/2.6.28.9/usb-ehci-expedite-unlinks-when-the-root-hub-is-suspended.patch diff --git a/queue-2.6.28/usb-ehci-fix-isochronous-urb-leak.patch b/releases/2.6.28.9/usb-ehci-fix-isochronous-urb-leak.patch similarity index 100% rename from queue-2.6.28/usb-ehci-fix-isochronous-urb-leak.patch rename to releases/2.6.28.9/usb-ehci-fix-isochronous-urb-leak.patch diff --git a/queue-2.6.28/usb-option-let-cdc-acm-handle-sony-ericsson-f3507g-dell-5530.patch b/releases/2.6.28.9/usb-option-let-cdc-acm-handle-sony-ericsson-f3507g-dell-5530.patch similarity index 100% rename from queue-2.6.28/usb-option-let-cdc-acm-handle-sony-ericsson-f3507g-dell-5530.patch rename to releases/2.6.28.9/usb-option-let-cdc-acm-handle-sony-ericsson-f3507g-dell-5530.patch diff --git a/queue-2.6.28/usb-option.c-add-zte-622-modem-device.patch b/releases/2.6.28.9/usb-option.c-add-zte-622-modem-device.patch similarity index 100% rename from queue-2.6.28/usb-option.c-add-zte-622-modem-device.patch rename to releases/2.6.28.9/usb-option.c-add-zte-622-modem-device.patch diff --git a/queue-2.6.28/usb-serial-add-ftdi-usb-serial-converter-devices.patch b/releases/2.6.28.9/usb-serial-add-ftdi-usb-serial-converter-devices.patch similarity index 100% rename from queue-2.6.28/usb-serial-add-ftdi-usb-serial-converter-devices.patch rename to releases/2.6.28.9/usb-serial-add-ftdi-usb-serial-converter-devices.patch diff --git a/queue-2.6.28/usb-serial-ftdi-enable-uart-detection-on-gnice-jtag-adaptors-blacklist-interface0.patch b/releases/2.6.28.9/usb-serial-ftdi-enable-uart-detection-on-gnice-jtag-adaptors-blacklist-interface0.patch similarity index 100% rename from queue-2.6.28/usb-serial-ftdi-enable-uart-detection-on-gnice-jtag-adaptors-blacklist-interface0.patch rename to releases/2.6.28.9/usb-serial-ftdi-enable-uart-detection-on-gnice-jtag-adaptors-blacklist-interface0.patch diff --git a/queue-2.6.28/usb-serial-new-cp2101-device-id.patch b/releases/2.6.28.9/usb-serial-new-cp2101-device-id.patch similarity index 100% rename from queue-2.6.28/usb-serial-new-cp2101-device-id.patch rename to releases/2.6.28.9/usb-serial-new-cp2101-device-id.patch diff --git a/queue-2.6.28/usb-storage-unusual-usb-device-prolific-2507-variation-added.patch b/releases/2.6.28.9/usb-storage-unusual-usb-device-prolific-2507-variation-added.patch similarity index 100% rename from queue-2.6.28/usb-storage-unusual-usb-device-prolific-2507-variation-added.patch rename to releases/2.6.28.9/usb-storage-unusual-usb-device-prolific-2507-variation-added.patch diff --git a/queue-2.6.28/usb-unusual_devs-add-support-for-gi-0431-sd-card-interface.patch b/releases/2.6.28.9/usb-unusual_devs-add-support-for-gi-0431-sd-card-interface.patch similarity index 100% rename from queue-2.6.28/usb-unusual_devs-add-support-for-gi-0431-sd-card-interface.patch rename to releases/2.6.28.9/usb-unusual_devs-add-support-for-gi-0431-sd-card-interface.patch diff --git a/queue-2.6.28/usb-updated-unusual-devs-entry-for-usb-mass-storage-on-nokia-6233.patch b/releases/2.6.28.9/usb-updated-unusual-devs-entry-for-usb-mass-storage-on-nokia-6233.patch similarity index 100% rename from queue-2.6.28/usb-updated-unusual-devs-entry-for-usb-mass-storage-on-nokia-6233.patch rename to releases/2.6.28.9/usb-updated-unusual-devs-entry-for-usb-mass-storage-on-nokia-6233.patch diff --git a/queue-2.6.28/usb-usbfs-keep-async-urbs-until-the-device-file-is-closed.patch b/releases/2.6.28.9/usb-usbfs-keep-async-urbs-until-the-device-file-is-closed.patch similarity index 100% rename from queue-2.6.28/usb-usbfs-keep-async-urbs-until-the-device-file-is-closed.patch rename to releases/2.6.28.9/usb-usbfs-keep-async-urbs-until-the-device-file-is-closed.patch diff --git a/queue-2.6.28/usb-usbtmc-add-protocol-1-support.patch b/releases/2.6.28.9/usb-usbtmc-add-protocol-1-support.patch similarity index 100% rename from queue-2.6.28/usb-usbtmc-add-protocol-1-support.patch rename to releases/2.6.28.9/usb-usbtmc-add-protocol-1-support.patch diff --git a/queue-2.6.28/usb-usbtmc-fix-stupid-bug-in-open.patch b/releases/2.6.28.9/usb-usbtmc-fix-stupid-bug-in-open.patch similarity index 100% rename from queue-2.6.28/usb-usbtmc-fix-stupid-bug-in-open.patch rename to releases/2.6.28.9/usb-usbtmc-fix-stupid-bug-in-open.patch diff --git a/queue-2.6.28/v4l-dvb-cx23885-fix-oops-for-mixed-install-of-analog-and-digital-only-cards.patch b/releases/2.6.28.9/v4l-dvb-cx23885-fix-oops-for-mixed-install-of-analog-and-digital-only-cards.patch similarity index 100% rename from queue-2.6.28/v4l-dvb-cx23885-fix-oops-for-mixed-install-of-analog-and-digital-only-cards.patch rename to releases/2.6.28.9/v4l-dvb-cx23885-fix-oops-for-mixed-install-of-analog-and-digital-only-cards.patch