]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
start 2.6.24.1 review cycle
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 7 Feb 2008 20:49:03 +0000 (12:49 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 7 Feb 2008 20:49:03 +0000 (12:49 -0800)
47 files changed:
review-2.6.24/acpi-update-acpi-blacklist.patch [moved from queue-2.6.24/acpi-update-acpi-blacklist.patch with 100% similarity]
review-2.6.24/b43-drop-packets-we-are-not-able-to-encrypt.patch [moved from queue-2.6.24/b43-drop-packets-we-are-not-able-to-encrypt.patch with 100% similarity]
review-2.6.24/b43-fix-dma-slot-resource-leakage.patch [moved from queue-2.6.24/b43-fix-dma-slot-resource-leakage.patch with 100% similarity]
review-2.6.24/b43-fix-suspend-resume.patch [moved from queue-2.6.24/b43-fix-suspend-resume.patch with 100% similarity]
review-2.6.24/b43-reject-new-firmware-early.patch [moved from queue-2.6.24/b43-reject-new-firmware-early.patch with 100% similarity]
review-2.6.24/b43legacy-drop-packets-we-are-not-able-to-encrypt.patch [moved from queue-2.6.24/b43legacy-drop-packets-we-are-not-able-to-encrypt.patch with 100% similarity]
review-2.6.24/b43legacy-fix-dma-slot-resource-leakage.patch [moved from queue-2.6.24/b43legacy-fix-dma-slot-resource-leakage.patch with 100% similarity]
review-2.6.24/b43legacy-fix-pio-crash.patch [moved from queue-2.6.24/b43legacy-fix-pio-crash.patch with 100% similarity]
review-2.6.24/b43legacy-fix-suspend-resume.patch [moved from queue-2.6.24/b43legacy-fix-suspend-resume.patch with 100% similarity]
review-2.6.24/driver-core-revert-fix-firmware-class-name-collision.patch [moved from queue-2.6.24/driver-core-revert-fix-firmware-class-name-collision.patch with 100% similarity]
review-2.6.24/drm-the-drm-really-should-call-pci_set_master.patch [moved from queue-2.6.24/drm-the-drm-really-should-call-pci_set_master.patch with 100% similarity]
review-2.6.24/dvb-cx23885-add-missing-subsystem-id-for-hauppauge-hvr1800-retail.patch [moved from queue-2.6.24/dvb-cx23885-add-missing-subsystem-id-for-hauppauge-hvr1800-retail.patch with 100% similarity]
review-2.6.24/fix-writev-regression-pan-hanging-unkillable-and-un-straceable.patch [moved from queue-2.6.24/fix-writev-regression-pan-hanging-unkillable-and-un-straceable.patch with 100% similarity]
review-2.6.24/forcedeth-mac-address-mcp77-79.patch [moved from queue-2.6.24/forcedeth-mac-address-mcp77-79.patch with 100% similarity]
review-2.6.24/lockdep-annotate-epoll.patch [moved from queue-2.6.24/lockdep-annotate-epoll.patch with 100% similarity]
review-2.6.24/mbox [new file with mode: 0644]
review-2.6.24/pci-fix-fakephp-deadlock.patch [moved from queue-2.6.24/pci-fix-fakephp-deadlock.patch with 100% similarity]
review-2.6.24/sched-fix-high-wake-up-latencies-with-fair_user_sched.patch [moved from queue-2.6.24/sched-fix-high-wake-up-latencies-with-fair_user_sched.patch with 100% similarity]
review-2.6.24/sched-let-nice-tasks-have-smaller-impact.patch [moved from queue-2.6.24/sched-let-nice-tasks-have-smaller-impact.patch with 100% similarity]
review-2.6.24/selinux-fix-labeling-of-proc-net-inodes.patch [moved from queue-2.6.24/selinux-fix-labeling-of-proc-net-inodes.patch with 100% similarity]
review-2.6.24/series [moved from queue-2.6.24/series with 100% similarity]
review-2.6.24/sky2-fix-for-wol-on-some-devices.patch [moved from queue-2.6.24/sky2-fix-for-wol-on-some-devices.patch with 100% similarity]
review-2.6.24/sky2-restore-multicast-addresses-after-recovery.patch [moved from queue-2.6.24/sky2-restore-multicast-addresses-after-recovery.patch with 100% similarity]
review-2.6.24/slab-fix-bootstrap-on-memoryless-node.patch [moved from queue-2.6.24/slab-fix-bootstrap-on-memoryless-node.patch with 100% similarity]
review-2.6.24/sys_remap_file_pages-fix-vm_file-accounting.patch [moved from queue-2.6.24/sys_remap_file_pages-fix-vm_file-accounting.patch with 100% similarity]
review-2.6.24/usb-add-support-for-4348-5523-winchiphead-usb-rs-232-adapter.patch [moved from queue-2.6.24/usb-add-support-for-4348-5523-winchiphead-usb-rs-232-adapter.patch with 100% similarity]
review-2.6.24/usb-adding-yc-cable-usb-serial-device-to-pl2303.patch [moved from queue-2.6.24/usb-adding-yc-cable-usb-serial-device-to-pl2303.patch with 100% similarity]
review-2.6.24/usb-cp2101-new-device-ids.patch [moved from queue-2.6.24/usb-cp2101-new-device-ids.patch with 100% similarity]
review-2.6.24/usb-fix-usb_serial_driver-structure-for-kobil-cardreader-driver.patch [moved from queue-2.6.24/usb-fix-usb_serial_driver-structure-for-kobil-cardreader-driver.patch with 100% similarity]
review-2.6.24/usb-fix-usbtest-halt-check-on-big-endian-systems.patch [moved from queue-2.6.24/usb-fix-usbtest-halt-check-on-big-endian-systems.patch with 100% similarity]
review-2.6.24/usb-ftdi-driver-add-support-for-optical-probe-device.patch [moved from queue-2.6.24/usb-ftdi-driver-add-support-for-optical-probe-device.patch with 100% similarity]
review-2.6.24/usb-ftdi-sio-patch-to-add-vendor-device-id-for-atk_16ic-ccd.patch [moved from queue-2.6.24/usb-ftdi-sio-patch-to-add-vendor-device-id-for-atk_16ic-ccd.patch with 100% similarity]
review-2.6.24/usb-ftdi_sio-enabling-multiple-elv-devices-adding-em1010pc.patch [moved from queue-2.6.24/usb-ftdi_sio-enabling-multiple-elv-devices-adding-em1010pc.patch with 100% similarity]
review-2.6.24/usb-gadget-fix-fsl_usb2_udc-potential-oops.patch [moved from queue-2.6.24/usb-gadget-fix-fsl_usb2_udc-potential-oops.patch with 100% similarity]
review-2.6.24/usb-handle-idvendor-of-0x0000.patch [moved from queue-2.6.24/usb-handle-idvendor-of-0x0000.patch with 100% similarity]
review-2.6.24/usb-keyspan-fix-oops.patch [moved from queue-2.6.24/usb-keyspan-fix-oops.patch with 100% similarity]
review-2.6.24/usb-pl2303-add-support-for-ratoc-rex-usb60f.patch [moved from queue-2.6.24/usb-pl2303-add-support-for-ratoc-rex-usb60f.patch with 100% similarity]
review-2.6.24/usb-remove-duplicate-entry-in-option-driver-and-pl2303-driver-for-huawei-modem.patch [moved from queue-2.6.24/usb-remove-duplicate-entry-in-option-driver-and-pl2303-driver-for-huawei-modem.patch with 100% similarity]
review-2.6.24/usb-sierra-add-support-for-aircard-881u.patch [moved from queue-2.6.24/usb-sierra-add-support-for-aircard-881u.patch with 100% similarity]
review-2.6.24/usb-sierra-add-support-for-onda-h600-zte-mf330-datacard-to-usb-driver-for-sierra-wireless.patch [moved from queue-2.6.24/usb-sierra-add-support-for-onda-h600-zte-mf330-datacard-to-usb-driver-for-sierra-wireless.patch with 100% similarity]
review-2.6.24/usb-sierra-driver-add-devices.patch [moved from queue-2.6.24/usb-sierra-driver-add-devices.patch with 100% similarity]
review-2.6.24/usb-storage-add-unusual_dev-for-hp-r707.patch [moved from queue-2.6.24/usb-storage-add-unusual_dev-for-hp-r707.patch with 100% similarity]
review-2.6.24/usb-use-gfp_noio-in-reset-path.patch [moved from queue-2.6.24/usb-use-gfp_noio-in-reset-path.patch with 100% similarity]
review-2.6.24/usb-variant-of-the-dell-wireless-5520-driver.patch [moved from queue-2.6.24/usb-variant-of-the-dell-wireless-5520-driver.patch with 100% similarity]
review-2.6.24/vm-audit-add-vm_dontexpand-to-mmap-for-drivers-that-need-it.patch [moved from queue-2.6.24/vm-audit-add-vm_dontexpand-to-mmap-for-drivers-that-need-it.patch with 100% similarity]
review-2.6.24/x86-replace-lock_prefix-in-futex.h.patch [moved from queue-2.6.24/x86-replace-lock_prefix-in-futex.h.patch with 100% similarity]
review-2.6.24/x86-restore-correct-module-name-for-apm.patch [moved from queue-2.6.24/x86-restore-correct-module-name-for-apm.patch with 100% similarity]

diff --git a/review-2.6.24/mbox b/review-2.6.24/mbox
new file mode 100644 (file)
index 0000000..da9ad19
--- /dev/null
@@ -0,0 +1,4165 @@
+From gregkh@mini.kroah.org Thu Feb  7 12:43:09 2008
+Message-Id: <20080207204309.758113955@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:19 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ mkrufky@hauppauge.com,
+ Mauro Carvalho Chehab <mchehab@infradead.org>,
+ Chris Wright <chrisw@sous-sol.org>
+Subject: [patch 01/45] DVB: cx23885: add missing subsystem ID for Hauppauge HVR1800 Retail
+Content-Disposition: inline; filename=dvb-cx23885-add-missing-subsystem-id-for-hauppauge-hvr1800-retail.patch
+Content-Length: 1521
+Lines: 38
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Michael Krufky <mkrufky@linuxtv.org>
+
+[PATCH] DVB: cx23885: add missing subsystem ID for Hauppauge HVR1800 Retail
+
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+
+---
+ Documentation/video4linux/CARDLIST.cx23885  |    2 +-
+ drivers/media/video/cx23885/cx23885-cards.c |    4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+--- linux-2.6.24.1.orig/Documentation/video4linux/CARDLIST.cx23885
++++ linux-2.6.24.1/Documentation/video4linux/CARDLIST.cx23885
+@@ -1,5 +1,5 @@
+   0 -> UNKNOWN/GENERIC                                     [0070:3400]
+   1 -> Hauppauge WinTV-HVR1800lp                           [0070:7600]
+-  2 -> Hauppauge WinTV-HVR1800                             [0070:7800,0070:7801]
++  2 -> Hauppauge WinTV-HVR1800                             [0070:7800,0070:7801,0070:7809]
+   3 -> Hauppauge WinTV-HVR1250                             [0070:7911]
+   4 -> DViCO FusionHDTV5 Express                           [18ac:d500]
+--- linux-2.6.24.1.orig/drivers/media/video/cx23885/cx23885-cards.c
++++ linux-2.6.24.1/drivers/media/video/cx23885/cx23885-cards.c
+@@ -138,6 +138,10 @@ struct cx23885_subid cx23885_subids[] = 
+               .card      = CX23885_BOARD_HAUPPAUGE_HVR1800,
+       },{
+               .subvendor = 0x0070,
++              .subdevice = 0x7809,
++              .card      = CX23885_BOARD_HAUPPAUGE_HVR1800,
++      },{
++              .subvendor = 0x0070,
+               .subdevice = 0x7911,
+               .card      = CX23885_BOARD_HAUPPAUGE_HVR1250,
+       },{
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:10 2008
+Message-Id: <20080207204309.983568365@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:20 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ mel@csn.ul.ie,
+ olaf@aepfle.de,
+ clameter@sgi.com,
+ Pekka Enberg <penberg@cs.helsinki.fi>,
+ Chris Wright <chrisw@sous-sol.org>
+Subject: [patch 02/45] slab: fix bootstrap on memoryless node
+Content-Disposition: inline; filename=slab-fix-bootstrap-on-memoryless-node.patch
+Content-Length: 3881
+Lines: 121
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Pekka J Enberg <penberg@cs.helsinki.fi>
+
+[ Upstream commit: 556a169dab38b5100df6f4a45b655dddd3db94c1 ]
+
+If the node we're booting on doesn't have memory, bootstrapping kmalloc()
+caches resorts to fallback_alloc() which requires ->nodelists set for all
+nodes.  Fix that by calling set_up_list3s() for CACHE_CACHE in
+kmem_cache_init().
+    
+As kmem_getpages() is called with GFP_THISNODE set, this used to work before
+because of breakage in 2.6.22 and before with GFP_THISNODE returning pages from
+the wrong node if a node had no memory. So it may have worked accidentally and
+in an unsafe manner because the pages would have been associated with the wrong
+node which could trigger bug ons and locking troubles.
+    
+Tested-by: Mel Gorman <mel@csn.ul.ie>
+Tested-by: Olaf Hering <olaf@aepfle.de>
+Reviewed-by: Christoph Lameter <clameter@sgi.com>
+[ With additional one-liner by Olaf Hering  - Linus ]
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+ mm/slab.c |   46 +++++++++++++++++++++++-----------------------
+ 1 file changed, 23 insertions(+), 23 deletions(-)
+
+--- linux-2.6.24.1.orig/mm/slab.c
++++ linux-2.6.24.1/mm/slab.c
+@@ -304,11 +304,11 @@ struct kmem_list3 {
+ /*
+  * Need this for bootstrapping a per node allocator.
+  */
+-#define NUM_INIT_LISTS (2 * MAX_NUMNODES + 1)
++#define NUM_INIT_LISTS (3 * MAX_NUMNODES)
+ struct kmem_list3 __initdata initkmem_list3[NUM_INIT_LISTS];
+ #define       CACHE_CACHE 0
+-#define       SIZE_AC 1
+-#define       SIZE_L3 (1 + MAX_NUMNODES)
++#define       SIZE_AC MAX_NUMNODES
++#define       SIZE_L3 (2 * MAX_NUMNODES)
+ static int drain_freelist(struct kmem_cache *cache,
+                       struct kmem_list3 *l3, int tofree);
+@@ -1410,6 +1410,22 @@ static void init_list(struct kmem_cache 
+ }
+ /*
++ * For setting up all the kmem_list3s for cache whose buffer_size is same as
++ * size of kmem_list3.
++ */
++static void __init set_up_list3s(struct kmem_cache *cachep, int index)
++{
++      int node;
++
++      for_each_online_node(node) {
++              cachep->nodelists[node] = &initkmem_list3[index + node];
++              cachep->nodelists[node]->next_reap = jiffies +
++                  REAPTIMEOUT_LIST3 +
++                  ((unsigned long)cachep) % REAPTIMEOUT_LIST3;
++      }
++}
++
++/*
+  * Initialisation.  Called after the page allocator have been initialised and
+  * before smp_init().
+  */
+@@ -1432,6 +1448,7 @@ void __init kmem_cache_init(void)
+               if (i < MAX_NUMNODES)
+                       cache_cache.nodelists[i] = NULL;
+       }
++      set_up_list3s(&cache_cache, CACHE_CACHE);
+       /*
+        * Fragmentation resistance on low memory - only use bigger
+@@ -1587,10 +1604,9 @@ void __init kmem_cache_init(void)
+       {
+               int nid;
+-              /* Replace the static kmem_list3 structures for the boot cpu */
+-              init_list(&cache_cache, &initkmem_list3[CACHE_CACHE], node);
+-
+               for_each_online_node(nid) {
++                      init_list(&cache_cache, &initkmem_list3[CACHE_CACHE], nid);
++
+                       init_list(malloc_sizes[INDEX_AC].cs_cachep,
+                                 &initkmem_list3[SIZE_AC + nid], nid);
+@@ -1960,22 +1976,6 @@ static void slab_destroy(struct kmem_cac
+       }
+ }
+-/*
+- * For setting up all the kmem_list3s for cache whose buffer_size is same as
+- * size of kmem_list3.
+- */
+-static void __init set_up_list3s(struct kmem_cache *cachep, int index)
+-{
+-      int node;
+-
+-      for_each_online_node(node) {
+-              cachep->nodelists[node] = &initkmem_list3[index + node];
+-              cachep->nodelists[node]->next_reap = jiffies +
+-                  REAPTIMEOUT_LIST3 +
+-                  ((unsigned long)cachep) % REAPTIMEOUT_LIST3;
+-      }
+-}
+-
+ static void __kmem_cache_destroy(struct kmem_cache *cachep)
+ {
+       int i;
+@@ -2099,7 +2099,7 @@ static int __init_refok setup_cpu_cache(
+                       g_cpucache_up = PARTIAL_L3;
+               } else {
+                       int node;
+-                      for_each_node_state(node, N_NORMAL_MEMORY) {
++                      for_each_online_node(node) {
+                               cachep->nodelists[node] =
+                                   kmalloc_node(sizeof(struct kmem_list3),
+                                               GFP_KERNEL, node);
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:10 2008
+Message-Id: <20080207204310.214380624@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:21 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Nick Piggin <npiggin@suse.de>
+Subject: [patch 03/45] vm audit: add VM_DONTEXPAND to mmap for drivers that need it (CVE-2008-0007)
+Content-Disposition: inline; filename=vm-audit-add-vm_dontexpand-to-mmap-for-drivers-that-need-it.patch
+Content-Length: 4618
+Lines: 141
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Nick Piggin <npiggin@suse.de>
+
+Drivers that register a ->fault handler, but do not range-check the
+offset argument, must set VM_DONTEXPAND in the vm_flags in order to
+prevent an expanding mremap from overflowing the resource.
+
+I've audited the tree and attempted to fix these problems (usually by
+adding VM_DONTEXPAND where it is not obvious).
+
+Signed-off-by: Nick Piggin <npiggin@suse.de>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/drm/drm_vm.c       |    2 ++
+ drivers/char/mspec.c            |    2 +-
+ fs/ncpfs/mmap.c                 |    4 ----
+ kernel/relay.c                  |    1 +
+ mm/mmap.c                       |    2 +-
+ sound/oss/via82cxxx_audio.c     |   14 ++++++--------
+ sound/usb/usx2y/usX2Yhwdep.c    |    2 +-
+ sound/usb/usx2y/usx2yhwdeppcm.c |    2 +-
+ 8 files changed, 13 insertions(+), 16 deletions(-)
+
+--- a/drivers/char/drm/drm_vm.c
++++ b/drivers/char/drm/drm_vm.c
+@@ -506,6 +506,7 @@ static int drm_mmap_dma(struct file *fil
+       vma->vm_ops = &drm_vm_dma_ops;
+       vma->vm_flags |= VM_RESERVED;   /* Don't swap */
++      vma->vm_flags |= VM_DONTEXPAND;
+       vma->vm_file = filp;    /* Needed for drm_vm_open() */
+       drm_vm_open_locked(vma);
+@@ -655,6 +656,7 @@ static int drm_mmap_locked(struct file *
+               return -EINVAL; /* This should never happen. */
+       }
+       vma->vm_flags |= VM_RESERVED;   /* Don't swap */
++      vma->vm_flags |= VM_DONTEXPAND;
+       vma->vm_file = filp;    /* Needed for drm_vm_open() */
+       drm_vm_open_locked(vma);
+--- a/drivers/char/mspec.c
++++ b/drivers/char/mspec.c
+@@ -283,7 +283,7 @@ mspec_mmap(struct file *file, struct vm_
+       vdata->refcnt = ATOMIC_INIT(1);
+       vma->vm_private_data = vdata;
+-      vma->vm_flags |= (VM_IO | VM_RESERVED | VM_PFNMAP);
++      vma->vm_flags |= (VM_IO | VM_RESERVED | VM_PFNMAP | VM_DONTEXPAND);
+       if (vdata->type == MSPEC_FETCHOP || vdata->type == MSPEC_UNCACHED)
+               vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+       vma->vm_ops = &mspec_vm_ops;
+--- a/fs/ncpfs/mmap.c
++++ b/fs/ncpfs/mmap.c
+@@ -50,10 +50,6 @@ static int ncp_file_mmap_fault(struct vm
+       pos = vmf->pgoff << PAGE_SHIFT;
+       count = PAGE_SIZE;
+-      if ((unsigned long)vmf->virtual_address + PAGE_SIZE > area->vm_end) {
+-              WARN_ON(1); /* shouldn't happen? */
+-              count = area->vm_end - (unsigned long)vmf->virtual_address;
+-      }
+       /* what we can read in one go */
+       bufsize = NCP_SERVER(inode)->buffer_size;
+--- a/kernel/relay.c
++++ b/kernel/relay.c
+@@ -92,6 +92,7 @@ static int relay_mmap_buf(struct rchan_b
+               return -EINVAL;
+       vma->vm_ops = &relay_file_mmap_ops;
++      vma->vm_flags |= VM_DONTEXPAND;
+       vma->vm_private_data = buf;
+       buf->chan->cb->buf_mapped(buf, filp);
+--- a/mm/mmap.c
++++ b/mm/mmap.c
+@@ -2215,7 +2215,7 @@ int install_special_mapping(struct mm_st
+       vma->vm_start = addr;
+       vma->vm_end = addr + len;
+-      vma->vm_flags = vm_flags | mm->def_flags;
++      vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND;
+       vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
+       vma->vm_ops = &special_mapping_vmops;
+--- a/sound/oss/via82cxxx_audio.c
++++ b/sound/oss/via82cxxx_audio.c
+@@ -2104,6 +2104,7 @@ static struct page * via_mm_nopage (stru
+ {
+       struct via_info *card = vma->vm_private_data;
+       struct via_channel *chan = &card->ch_out;
++      unsigned long max_bufs;
+       struct page *dmapage;
+       unsigned long pgoff;
+       int rd, wr;
+@@ -2127,14 +2128,11 @@ static struct page * via_mm_nopage (stru
+       rd = card->ch_in.is_mapped;
+       wr = card->ch_out.is_mapped;
+-#ifndef VIA_NDEBUG
+-      {
+-      unsigned long max_bufs = chan->frag_number;
+-      if (rd && wr) max_bufs *= 2;
+-      /* via_dsp_mmap() should ensure this */
+-      assert (pgoff < max_bufs);
+-      }
+-#endif
++      max_bufs = chan->frag_number;
++      if (rd && wr)
++              max_bufs *= 2;
++      if (pgoff >= max_bufs)
++              return NOPAGE_SIGBUS;
+       /* if full-duplex (read+write) and we have two sets of bufs,
+        * then the playback buffers come first, sez soundcard.c */
+--- a/sound/usb/usx2y/usX2Yhwdep.c
++++ b/sound/usb/usx2y/usX2Yhwdep.c
+@@ -88,7 +88,7 @@ static int snd_us428ctls_mmap(struct snd
+               us428->us428ctls_sharedmem->CtlSnapShotLast = -2;
+       }
+       area->vm_ops = &us428ctls_vm_ops;
+-      area->vm_flags |= VM_RESERVED;
++      area->vm_flags |= VM_RESERVED | VM_DONTEXPAND;
+       area->vm_private_data = hw->private_data;
+       return 0;
+ }
+--- a/sound/usb/usx2y/usx2yhwdeppcm.c
++++ b/sound/usb/usx2y/usx2yhwdeppcm.c
+@@ -728,7 +728,7 @@ static int snd_usX2Y_hwdep_pcm_mmap(stru
+               return -ENODEV;
+       }
+       area->vm_ops = &snd_usX2Y_hwdep_pcm_vm_ops;
+-      area->vm_flags |= VM_RESERVED;
++      area->vm_flags |= VM_RESERVED | VM_DONTEXPAND;
+       area->vm_private_data = hw->private_data;
+       return 0;
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:10 2008
+Message-Id: <20080207204310.441404364@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:22 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Alan Cox <alan@redhat.com>
+Subject: [patch 04/45] USB: keyspan: Fix oops
+Content-Disposition: inline; filename=usb-keyspan-fix-oops.patch
+Content-Length: 801
+Lines: 27
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Alan Cox <alan@lxorguk.ukuu.org.uk>
+
+If we get a data URB back from the hardware after we have put the tty to
+bed we go kaboom. Fortunately all we need to do is process the URB
+without trying to ram its contents down the throat of an ex-tty.
+
+Signed-off-by: Alan Cox <alan@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/keyspan.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/serial/keyspan.c
++++ b/drivers/usb/serial/keyspan.c
+@@ -838,7 +838,7 @@ static void        usa49_indat_callback(struct 
+       port = (struct usb_serial_port *) urb->context;
+       tty = port->tty;
+-      if (urb->actual_length) {
++      if (tty && urb->actual_length) {
+               /* 0x80 bit is error flag */
+               if ((data[0] & 0x80) == 0) {
+                       /* no error on any byte */
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:10 2008
+Message-Id: <20080207204310.667216663@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:23 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ David Brownell <dbrownell@users.sourceforge.net>
+Subject: [patch 05/45] usb gadget: fix fsl_usb2_udc potential OOPS
+Content-Disposition: inline; filename=usb-gadget-fix-fsl_usb2_udc-potential-oops.patch
+Content-Length: 851
+Lines: 29
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Li Yang <leoli@freescale.com>
+
+For fsl_usb2_udc driver, ep0 also has a descriptor.  Current code is
+misleading and contains a logical mistake.  Here is the patch to fix it.
+
+ http://bugzilla.kernel.org/show_bug.cgi?id=9595
+
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/gadget/fsl_usb2_udc.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/gadget/fsl_usb2_udc.c
++++ b/drivers/usb/gadget/fsl_usb2_udc.c
+@@ -776,7 +776,7 @@ fsl_ep_queue(struct usb_ep *_ep, struct 
+               VDBG("%s, bad params\n", __FUNCTION__);
+               return -EINVAL;
+       }
+-      if (!_ep || (!ep->desc && ep_index(ep))) {
++      if (unlikely(!_ep || !ep->desc)) {
+               VDBG("%s, bad ep\n", __FUNCTION__);
+               return -EINVAL;
+       }
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:11 2008
+Message-Id: <20080207204310.891113761@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:24 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Craig Shelley <craig@microtron.org.uk>
+Subject: [patch 06/45] USB: CP2101 New Device IDs
+Content-Disposition: inline; filename=usb-cp2101-new-device-ids.patch
+Content-Length: 1786
+Lines: 39
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Craig Shelley <craig@microtron.org.uk>
+
+Six new device IDs for CP2101 driver.
+
+Signed-off-by: Craig Shelley <craig@microtron.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/cp2101.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/usb/serial/cp2101.c
++++ b/drivers/usb/serial/cp2101.c
+@@ -59,6 +59,7 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(0x10A6, 0xAA26) }, /* Knock-off DCU-11 cable */
+       { USB_DEVICE(0x10AB, 0x10C5) }, /* Siemens MC60 Cable */
+       { USB_DEVICE(0x10B5, 0xAC70) }, /* Nokia CA-42 USB */
++      { USB_DEVICE(0x10C4, 0x800A) }, /* SPORTident BSM7-D-USB main station */
+       { USB_DEVICE(0x10C4, 0x803B) }, /* Pololu USB-serial converter */
+       { USB_DEVICE(0x10C4, 0x8053) }, /* Enfora EDG1228 */
+       { USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */
+@@ -76,8 +77,13 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(0x10C4, 0x8218) }, /* Lipowsky Industrie Elektronik GmbH, HARP-1 */
+       { USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
+       { USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
++      { USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */
++      { USB_DEVICE(0x10C4, 0xF002) }, /* Elan Digital Systems USBwave12 */
++      { USB_DEVICE(0x10C4, 0xF003) }, /* Elan Digital Systems USBpulse100 */
++      { USB_DEVICE(0x10C4, 0xF004) }, /* Elan Digital Systems USBcount50 */
+       { USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */
+       { USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */
++      { USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */
+       { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */
+       { } /* Terminating Entry */
+ };
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:11 2008
+Message-Id: <20080207204311.118534750@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:25 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 07/45] USB: add support for 4348:5523 WinChipHead USB->RS 232 adapter
+Content-Disposition: inline; filename=usb-add-support-for-4348-5523-winchiphead-usb-rs-232-adapter.patch
+Content-Length: 1097
+Lines: 40
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Piotr Roszatycki <dexter@debian.org>
+
+add support for:
+
+  4348:5523 WinChipHead USB->RS 232 adapter with Prolifec PL 2303 chipset
+
+[ mingo@elte.hu: merged it and nursed it upstream ]
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/pl2303.c |    1 +
+ drivers/usb/serial/pl2303.h |    5 +++++
+ 2 files changed, 6 insertions(+)
+
+--- a/drivers/usb/serial/pl2303.c
++++ b/drivers/usb/serial/pl2303.c
+@@ -87,6 +87,7 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ID) },
+       { USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) },
+       { USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) },
++      { USB_DEVICE(HL340_VENDOR_ID, HL340_PRODUCT_ID) },
+       { }                                     /* Terminating entry */
+ };
+--- a/drivers/usb/serial/pl2303.h
++++ b/drivers/usb/serial/pl2303.h
+@@ -107,3 +107,8 @@
+ /* Corega CG-USBRS232R Serial Adapter */
+ #define COREGA_VENDOR_ID      0x07aa
+ #define COREGA_PRODUCT_ID     0x002a
++
++/* HL HL-340 (ID: 4348:5523) */
++#define HL340_VENDOR_ID               0x4348
++#define HL340_PRODUCT_ID      0x5523
++
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:11 2008
+Message-Id: <20080207204311.343438636@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:26 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jessica L Blank <j@twu.net>
+Subject: [patch 08/45] USB: Sierra - Add support for Aircard 881U
+Content-Disposition: inline; filename=usb-sierra-add-support-for-aircard-881u.patch
+Content-Length: 1304
+Lines: 33
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Jessica L. Blank <j@twu.net>
+
+Adds the appropriate vendor and device IDs for the AirCard 881U to
+sierra.c. (This device is often rebadged by AT&T as the USBConnect 881).
+
+Signed-off-by: Jessica L Blank <j@twu.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/sierra.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/sierra.c
++++ b/drivers/usb/serial/sierra.c
+@@ -117,6 +117,7 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(0x1199, 0x6851) }, /* Sierra Wireless AirCard 881 */
+       { USB_DEVICE(0x1199, 0x6852) }, /* Sierra Wireless AirCard 880 E */
+       { USB_DEVICE(0x1199, 0x6853) }, /* Sierra Wireless AirCard 881 E */
++      { USB_DEVICE(0x1199, 0x6856) }, /* Sierra Wireless AirCard 881 U */
+       { USB_DEVICE(0x1199, 0x0112), .driver_info = DEVICE_1_PORT }, /* Sierra Wireless AirCard 580 */
+       { USB_DEVICE(0x0F3D, 0x0112), .driver_info = DEVICE_1_PORT }, /* Airprime/Sierra PC 5220 */
+@@ -155,6 +156,7 @@ static struct usb_device_id id_table_3po
+       { USB_DEVICE(0x1199, 0x6851) }, /* Sierra Wireless AirCard 881 */
+       { USB_DEVICE(0x1199, 0x6852) }, /* Sierra Wireless AirCard 880E */
+       { USB_DEVICE(0x1199, 0x6853) }, /* Sierra Wireless AirCard 881E */
++      { USB_DEVICE(0x1199, 0x6856) }, /* Sierra Wireless AirCard 881U */
+       { }
+ };
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:11 2008
+Message-Id: <20080207204311.569508297@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:27 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk
+Subject: [patch 09/45] USB: Adding YC Cable USB Serial device to pl2303
+Content-Disposition: inline; filename=usb-adding-yc-cable-usb-serial-device-to-pl2303.patch
+Content-Length: 1098
+Lines: 36
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Damien Stuart <dstuart@dstuart.org>
+
+This simply adds the "YC Cable" as a vendor and its pl2303-based
+USB<->Serial adapter as a product.  This particular adapter is sold by
+Radio Shack.  I've done limited testing on a few different systems with
+no issues.
+
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/pl2303.c |    1 +
+ drivers/usb/serial/pl2303.h |    3 +++
+ 2 files changed, 4 insertions(+)
+
+--- a/drivers/usb/serial/pl2303.c
++++ b/drivers/usb/serial/pl2303.c
+@@ -88,6 +88,7 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) },
+       { USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) },
+       { USB_DEVICE(HL340_VENDOR_ID, HL340_PRODUCT_ID) },
++      { USB_DEVICE(YCCABLE_VENDOR_ID, YCCABLE_PRODUCT_ID) },
+       { }                                     /* Terminating entry */
+ };
+--- a/drivers/usb/serial/pl2303.h
++++ b/drivers/usb/serial/pl2303.h
+@@ -112,3 +112,6 @@
+ #define HL340_VENDOR_ID               0x4348
+ #define HL340_PRODUCT_ID      0x5523
++/* Y.C. Cable U.S.A., Inc - USB to RS-232 */
++#define YCCABLE_VENDOR_ID     0x05ad
++#define YCCABLE_PRODUCT_ID    0x0fba
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:12 2008
+Message-Id: <20080207204311.794222664@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:28 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Kevin Lloyd <linux@sierrawireless.com>
+Subject: [patch 10/45] USB: sierra driver - add devices
+Content-Disposition: inline; filename=usb-sierra-driver-add-devices.patch
+Content-Length: 2649
+Lines: 57
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Kevin Lloyd <linux@sierrawireless.com>
+
+The following improvements were made:
+ - Added new product support: MC5725, AC 880 U, MP 3G (UMTS & CDMA)
+
+Signed-off-by: Kevin Lloyd <linux@sierrawireless.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/sierra.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/usb/serial/sierra.c
++++ b/drivers/usb/serial/sierra.c
+@@ -104,6 +104,7 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */
+       { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */
+       { USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U */
++      { USB_DEVICE(0x1199, 0x0023) }, /* Sierra Wireless AirCard */
+       { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */
+       { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */
+@@ -117,8 +118,12 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(0x1199, 0x6851) }, /* Sierra Wireless AirCard 881 */
+       { USB_DEVICE(0x1199, 0x6852) }, /* Sierra Wireless AirCard 880 E */
+       { USB_DEVICE(0x1199, 0x6853) }, /* Sierra Wireless AirCard 881 E */
++      { USB_DEVICE(0x1199, 0x6855) }, /* Sierra Wireless AirCard 880 U */
+       { USB_DEVICE(0x1199, 0x6856) }, /* Sierra Wireless AirCard 881 U */
++      { USB_DEVICE(0x1199, 0x6468) }, /* Sierra Wireless MP3G - EVDO */
++      { USB_DEVICE(0x1199, 0x6469) }, /* Sierra Wireless MP3G - UMTS/HSPA */
++
+       { USB_DEVICE(0x1199, 0x0112), .driver_info = DEVICE_1_PORT }, /* Sierra Wireless AirCard 580 */
+       { USB_DEVICE(0x0F3D, 0x0112), .driver_info = DEVICE_1_PORT }, /* Airprime/Sierra PC 5220 */
+@@ -143,6 +148,7 @@ static struct usb_device_id id_table_3po
+       { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */
+       { USB_DEVICE(0x1199, 0x0021) }, /* Sierra Wireless AirCard 597E */
+       { USB_DEVICE(0x1199, 0x0120) }, /* Sierra Wireless USB Dongle 595U*/
++      { USB_DEVICE(0x1199, 0x0023) }, /* Sierra Wireless AirCard */
+       { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */
+       { USB_DEVICE(0x1199, 0x6804) }, /* Sierra Wireless MC8755 */
+@@ -156,7 +162,10 @@ static struct usb_device_id id_table_3po
+       { USB_DEVICE(0x1199, 0x6851) }, /* Sierra Wireless AirCard 881 */
+       { USB_DEVICE(0x1199, 0x6852) }, /* Sierra Wireless AirCard 880E */
+       { USB_DEVICE(0x1199, 0x6853) }, /* Sierra Wireless AirCard 881E */
++      { USB_DEVICE(0x1199, 0x6855) }, /* Sierra Wireless AirCard 880 U */
+       { USB_DEVICE(0x1199, 0x6856) }, /* Sierra Wireless AirCard 881U */
++      { USB_DEVICE(0x1199, 0x6468) }, /* Sierra Wireless MP3G - EVDO */
++      { USB_DEVICE(0x1199, 0x6469) }, /* Sierra Wireless MP3G - UMTS/HSPA */
+       { }
+ };
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:12 2008
+Message-Id: <20080207204312.022578737@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:29 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Peter Stark <peter.stark@t-online.de>
+Subject: [patch 11/45] USB: ftdi_sio - enabling multiple ELV devices, adding EM1010PC
+Content-Disposition: inline; filename=usb-ftdi_sio-enabling-multiple-elv-devices-adding-em1010pc.patch
+Content-Length: 4150
+Lines: 90
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Peter Stark <Peter.Stark@t-online.de>
+
+I work with a group of people on a free home automation tool called
+FHEM.  Some of the users own more than one USB-serial device by ELV. The
+ftdi_sio driver has most of the ELV devices disabled by default and
+needs to be re-enabled every time you get a new kernel. Additionally a
+new device (EM 1010 PC - enegry monitor) is missing in the list.
+Currently our users have to follow the instructions we provide at
+http://www.koeniglich.de/fhem/linux.html ... However, to some users it
+is too complicated to compile their own kernel module.
+
+We are aware that you can specify one additional device using the
+vendor/product option of the module. But lot's of users own more than
+one device.
+
+Signed-off-by: Peter Stark <peter.stark@t-online.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c |   44 ++++++++++++++++++++----------------------
+ drivers/usb/serial/ftdi_sio.h |    1 
+ 2 files changed, 22 insertions(+), 23 deletions(-)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -471,30 +471,28 @@ static struct usb_device_id id_table_com
+       { USB_DEVICE(FTDI_VID, FTDI_IBS_PEDO_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_IBS_PROD_PID) },
+       /*
+-       * These will probably use user-space drivers.  Uncomment them if
+-       * you need them or use the user-specified vendor/product module
+-       * parameters (see ftdi_sio.h for the numbers).  Make a fuss if
+-       * you think the driver should recognize any of them by default.
++       * Due to many user requests for multiple ELV devices we enable
++       * them by default.
+        */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_CLI7000_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_PPS7330_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_TFM100_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_UDF77_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_UIO88_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_UAD8_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_UDA7_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_USI2_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_T1100_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_PCD200_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_ULA200_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_CSI8_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_EM1000DL_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_PCK100_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_RFP500_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_FS20SIG_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_WS300PC_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_FHZ1300PC_PID) }, */
+-      /* { USB_DEVICE(FTDI_VID, FTDI_ELV_WS500_PID) }, */
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_CLI7000_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_PPS7330_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_TFM100_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_UDF77_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_UIO88_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_UAD8_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_UDA7_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_USI2_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_T1100_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_PCD200_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_ULA200_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_CSI8_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_EM1000DL_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_PCK100_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_RFP500_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_FS20SIG_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_WS300PC_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_FHZ1300PC_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELV_WS500_PID) },
+       { USB_DEVICE(FTDI_VID, LINX_SDMUSBQSS_PID) },
+       { USB_DEVICE(FTDI_VID, LINX_MASTERDEVEL2_PID) },
+       { USB_DEVICE(FTDI_VID, LINX_FUTURE_0_PID) },
+--- a/drivers/usb/serial/ftdi_sio.h
++++ b/drivers/usb/serial/ftdi_sio.h
+@@ -245,6 +245,7 @@
+ #define FTDI_ELV_WS300PC_PID  0xE0F6  /* PC-Wetterstation (WS 300 PC) */
+ #define FTDI_ELV_FHZ1300PC_PID        0xE0E8  /* FHZ 1300 PC */
+ #define FTDI_ELV_WS500_PID    0xE0E9  /* PC-Wetterstation (WS 500) */
++#define FTDI_ELV_EM1010PC_PID 0xE0EF  /* Engery monitor EM 1010 PC */
+ /*
+  * Definitions for ID TECH (www.idt-net.com) devices
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:12 2008
+Message-Id: <20080207204312.470058865@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:30 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk
+Subject: [patch 12/45] USB: ftdi-sio: Patch to add vendor/device id for ATK_16IC CCD
+Content-Disposition: inline; filename=usb-ftdi-sio-patch-to-add-vendor-device-id-for-atk_16ic-ccd.patch
+Content-Length: 1243
+Lines: 36
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Franco Lanza <nextime@nexlab.it>
+
+little patches only to add vendor/device id of ATK_16IC CCD cam for
+astronomy.
+
+From: Franco Lanza <nextime@nexlab.it>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c |    1 +
+ drivers/usb/serial/ftdi_sio.h |    1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -543,6 +543,7 @@ static struct usb_device_id id_table_com
+       { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16C_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16HR_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16HRC_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ATIK_ATK16IC_PID) },
+       { USB_DEVICE(KOBIL_VID, KOBIL_CONV_B1_PID) },
+       { USB_DEVICE(KOBIL_VID, KOBIL_CONV_KAAN_PID) },
+       { USB_DEVICE(POSIFLEX_VID, POSIFLEX_PP7000_PID) },
+--- a/drivers/usb/serial/ftdi_sio.h
++++ b/drivers/usb/serial/ftdi_sio.h
+@@ -279,6 +279,7 @@
+ #define FTDI_ATIK_ATK16C_PID  0xDF32  /* ATIK ATK-16C Colour Camera */
+ #define FTDI_ATIK_ATK16HR_PID 0xDF31  /* ATIK ATK-16HR Grayscale Camera */
+ #define FTDI_ATIK_ATK16HRC_PID        0xDF33  /* ATIK ATK-16HRC Colour Camera */
++#define FTDI_ATIK_ATK16IC_PID   0xDF35  /* ATIK ATK-16IC Grayscale Camera */
+ /*
+  * Protego product ids
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:13 2008
+Message-Id: <20080207204312.925564082@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:31 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Bruno Redondi <bruno.redondi@altarisoluzione.com>
+Subject: [patch 13/45] USB: sierra: add support for Onda H600/Zte MF330 datacard to USB Driver for Sierra Wireless
+Content-Disposition: inline; filename=usb-sierra-add-support-for-onda-h600-zte-mf330-datacard-to-usb-driver-for-sierra-wireless.patch
+Content-Length: 1119
+Lines: 32
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Bruno Redondi <bruno.redondi@altarisoluzione.com>
+
+Added support for Onda H600/Zte MF330 GPRS/UMTS/HSDPA datacard
+
+Signed-off-by: Bruno Redondi <bruno.redondi@altarisoluzione.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/sierra.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/sierra.c
++++ b/drivers/usb/serial/sierra.c
+@@ -126,6 +126,7 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(0x1199, 0x0112), .driver_info = DEVICE_1_PORT }, /* Sierra Wireless AirCard 580 */
+       { USB_DEVICE(0x0F3D, 0x0112), .driver_info = DEVICE_1_PORT }, /* Airprime/Sierra PC 5220 */
++      { USB_DEVICE(0x05C6, 0x6613), .driver_info = DEVICE_1_PORT }, /* Onda H600/ZTE MF330 */
+       { USB_DEVICE(0x1199, 0x0FFF), .driver_info = DEVICE_INSTALLER},
+       { }
+@@ -135,6 +136,7 @@ MODULE_DEVICE_TABLE(usb, id_table);
+ static struct usb_device_id id_table_1port [] = {
+       { USB_DEVICE(0x1199, 0x0112) }, /* Sierra Wireless AirCard 580 */
+       { USB_DEVICE(0x0F3D, 0x0112) }, /* AirPrime/Sierra PC 5220 */
++      { USB_DEVICE(0x05C6, 0x6613) }, /* Onda H600/ZTE MF330 */
+       { }
+ };
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:13 2008
+Message-Id: <20080207204313.243910341@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:32 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ =?ISO-8859-15?q?Daniel=20Koz=C3=A1k?= <kozzi11@gmail.com>
+Subject: [patch 14/45] USB: remove duplicate entry in Option driver and Pl2303 driver for Huawei modem
+Content-Disposition: inline; filename=usb-remove-duplicate-entry-in-option-driver-and-pl2303-driver-for-huawei-modem.patch
+Content-Length: 1293
+Lines: 39
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Daniel Kozák <kozzi11@gmail.com>
+
+Remove entry for Huawei E620 UMTS/HSDPA card (ID: 12d1:1001) in pl2303 driver
+Option driver is use instead
+
+Signed-off-by: Daniel Kozák <kozzi11@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/pl2303.c |    1 -
+ drivers/usb/serial/pl2303.h |    4 ----
+ 2 files changed, 5 deletions(-)
+
+--- a/drivers/usb/serial/pl2303.c
++++ b/drivers/usb/serial/pl2303.c
+@@ -84,7 +84,6 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(DATAPILOT_U2_VENDOR_ID, DATAPILOT_U2_PRODUCT_ID) },
+       { USB_DEVICE(BELKIN_VENDOR_ID, BELKIN_PRODUCT_ID) },
+       { USB_DEVICE(ALCOR_VENDOR_ID, ALCOR_PRODUCT_ID) },
+-      { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_ID) },
+       { USB_DEVICE(WS002IN_VENDOR_ID, WS002IN_PRODUCT_ID) },
+       { USB_DEVICE(COREGA_VENDOR_ID, COREGA_PRODUCT_ID) },
+       { USB_DEVICE(HL340_VENDOR_ID, HL340_PRODUCT_ID) },
+--- a/drivers/usb/serial/pl2303.h
++++ b/drivers/usb/serial/pl2303.h
+@@ -96,10 +96,6 @@
+ #define ALCOR_VENDOR_ID               0x058F
+ #define ALCOR_PRODUCT_ID      0x9720
+-/* Huawei E620 UMTS/HSDPA card (ID: 12d1:1001) */
+-#define HUAWEI_VENDOR_ID      0x12d1
+-#define HUAWEI_PRODUCT_ID     0x1001
+-
+ /* Willcom WS002IN Data Driver (by NetIndex Inc.) */
+ #define WS002IN_VENDOR_ID     0x11f6
+ #define WS002IN_PRODUCT_ID    0x2001
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:13 2008
+Message-Id: <20080207204313.581550549@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:33 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Akira Tsukamoto <akirat@rd.scei.sony.co.jp>
+Subject: [patch 15/45] USB: pl2303: add support for RATOC REX-USB60F
+Content-Disposition: inline; filename=usb-pl2303-add-support-for-ratoc-rex-usb60f.patch
+Content-Length: 1212
+Lines: 38
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Akira Tsukamoto <akirat@rd.scei.sony.co.jp>
+
+pl2303: add support for RATOC REX-USB60F
+
+This patch adds support for RATOC REX-USB60F Serial Adapters,
+which is widely used in Japan recently.
+
+Signed-off-by: Akira Tsukamoto <akirat@rd.scei.sony.co.jp>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/pl2303.c |    1 +
+ drivers/usb/serial/pl2303.h |    1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/pl2303.c
++++ b/drivers/usb/serial/pl2303.c
+@@ -65,6 +65,7 @@ static struct usb_device_id id_table [] 
+       { USB_DEVICE(ITEGNO_VENDOR_ID, ITEGNO_PRODUCT_ID_2080) },
+       { USB_DEVICE(MA620_VENDOR_ID, MA620_PRODUCT_ID) },
+       { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID) },
++      { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) },
+       { USB_DEVICE(TRIPP_VENDOR_ID, TRIPP_PRODUCT_ID) },
+       { USB_DEVICE(RADIOSHACK_VENDOR_ID, RADIOSHACK_PRODUCT_ID) },
+       { USB_DEVICE(DCU10_VENDOR_ID, DCU10_PRODUCT_ID) },
+--- a/drivers/usb/serial/pl2303.h
++++ b/drivers/usb/serial/pl2303.h
+@@ -35,6 +35,7 @@
+ #define RATOC_VENDOR_ID               0x0584
+ #define RATOC_PRODUCT_ID      0xb000
++#define RATOC_PRODUCT_ID_USB60F       0xb020
+ #define TRIPP_VENDOR_ID               0x2478
+ #define TRIPP_PRODUCT_ID      0x2008
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:14 2008
+Message-Id: <20080207204313.807483027@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:34 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Ed Beroset <beroset@mindspring.com>
+Subject: [patch 16/45] USB: ftdi driver - add support for optical probe device
+Content-Disposition: inline; filename=usb-ftdi-driver-add-support-for-optical-probe-device.patch
+Content-Length: 1188
+Lines: 37
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Ed Beroset <beroset@mindspring.com>
+
+Added support for the Elster Unicom III Optical Probe.
+The device ID has already been added to the usb.ids file.
+
+Signed-off-by: Ed Beroset <beroset@mindspring.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c |    1 +
+ drivers/usb/serial/ftdi_sio.h |    2 ++
+ 2 files changed, 3 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -568,6 +568,7 @@ static struct usb_device_id id_table_com
+       { USB_DEVICE(TELLDUS_VID, TELLDUS_TELLSTICK_PID) },
+       { USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) },
+       { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) },
++      { USB_DEVICE(FTDI_VID, FTDI_ELSTER_UNICOM_PID) },
+       { USB_DEVICE(OLIMEX_VID, OLIMEX_ARM_USB_OCD_PID),
+               .driver_info = (kernel_ulong_t)&ftdi_olimex_quirk },
+       { },                                    /* Optional parameter entry */
+--- a/drivers/usb/serial/ftdi_sio.h
++++ b/drivers/usb/serial/ftdi_sio.h
+@@ -536,6 +536,8 @@
+ #define OLIMEX_VID                    0x15BA
+ #define OLIMEX_ARM_USB_OCD_PID                0x0003
++/* www.elsterelectricity.com Elster Unicom III Optical Probe */
++#define FTDI_ELSTER_UNICOM_PID                0xE700 /* Product Id */
+ /*
+  * The Mobility Lab (TML)
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:14 2008
+Message-Id: <20080207204314.038039364@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:35 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Oliver Neukum <oneukum@suse.de>
+Subject: [patch 17/45] USB: use GFP_NOIO in reset path
+Content-Disposition: inline; filename=usb-use-gfp_noio-in-reset-path.patch
+Content-Length: 811
+Lines: 27
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Oliver Neukum <oliver@neukum.org>
+
+this function will run in the context of the scsi error handler thread.
+It must use GFP_NOIO instead of GFP_KERNEL to avoid a possible
+deadlock.
+
+Signed-off-by: Oliver Neukum <oneukum@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/core/hub.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/core/hub.c
++++ b/drivers/usb/core/hub.c
+@@ -2946,7 +2946,7 @@ static int config_descriptors_changed(st
+               if (len < le16_to_cpu(udev->config[index].desc.wTotalLength))
+                       len = le16_to_cpu(udev->config[index].desc.wTotalLength);
+       }
+-      buf = kmalloc (len, GFP_KERNEL);
++      buf = kmalloc(len, GFP_NOIO);
+       if (buf == NULL) {
+               dev_err(&udev->dev, "no mem to re-read configs after reset\n");
+               /* assume the worst */
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:14 2008
+Message-Id: <20080207204314.655539224@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:36 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk
+Subject: [patch 18/45] USB: Variant of the Dell Wireless 5520 driver
+Content-Disposition: inline; filename=usb-variant-of-the-dell-wireless-5520-driver.patch
+Content-Length: 1689
+Lines: 39
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Nate Carlson <natecars@natecarlson.com>
+
+I've got a Dell wireless 5520 card with a different USB ID - specifically, 8136
+instead of 8137. Attached a small patch to add support, and the output of an
+'ati3'.
+
+If we could get this in, that'd be sweet.  ;)  Thanks!
+
+nc@knight:~/tmp/linux-2.6.24-rc8/drivers/usb/serial$ lsusb | grep 8136
+       Bus 001 Device 005: ID 413c:8136 Dell Computer Corp.
+nc@knight:~/tmp/linux-source-2.6.23/drivers/usb/serial$ cu -l ttyUSB0 -s 115200
+       Connected.
+       ati3
+       Manufacturer: Novatel Wireless Incorporated
+       Model: Expedite EU860D MiniCard
+       Revision: 10.10.04.01-01  [2007-04-11 14:07:19]
+       IMEI: 011186000228043
+       +GCAP: +CGSM,+DS,+ES
+
+From: Nate Carlson <natecars@natecarlson.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/option.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/serial/option.c
++++ b/drivers/usb/serial/option.c
+@@ -180,6 +180,7 @@ static struct usb_device_id option_ids[]
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8117) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO ExpressCard == Novatel Merlin XV620 CDMA/EV-DO */
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8118) }, /* Dell Wireless 5510 Mobile Broadband HSDPA ExpressCard == Novatel Merlin XU870 HSDPA/3G */
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8128) }, /* Dell Wireless 5700 Mobile Broadband CDMA/EVDO Mini-Card == Novatel Expedite E720 CDMA/EV-DO */
++      { USB_DEVICE(DELL_VENDOR_ID, 0x8136) }, /* Dell Wireless HSDPA 5520 == Novatel Expedite EU860D */
+       { USB_DEVICE(DELL_VENDOR_ID, 0x8137) }, /* Dell Wireless HSDPA 5520 */
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_E100A) },
+       { USB_DEVICE(ANYDATA_VENDOR_ID, ANYDATA_PRODUCT_ADU_500A) },
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:15 2008
+Message-Id: <20080207204314.883671985@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:37 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Grant Grundler <grundler@parisc-linux.org>,
+ Phil Dibowitz <phil@ipom.com>
+Subject: [patch 19/45] USB: storage: Add unusual_dev for HP r707
+Content-Disposition: inline; filename=usb-storage-add-unusual_dev-for-hp-r707.patch
+Content-Length: 1267
+Lines: 36
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Grant Grundler <grundler@parisc-linux.org>
+
+Add "FIX_CAPACITY" entry for HP Photosmart r707 Camera in "Disk" mode.
+Camera will wedge when /lib/udev/vol_id attempts to access the last sector,
+EIO gets reported to dmesg, and block device is marked "offline" (it is).
+Reproduced vol_id behavior with:
+       "dd if=/dev/sda of=/dev/null skip=60800 count=1"
+
+Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
+Signed-off-by: Phil Dibowitz <phil@ipom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/storage/unusual_devs.h |    8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -86,6 +86,14 @@ UNUSUAL_DEV(  0x03f0, 0x0307, 0x0001, 0x
+               US_SC_8070, US_PR_USBAT, init_usbat_cd, 0),
+ #endif
++/* Reported by Grant Grundler <grundler@parisc-linux.org>
++ * HP r707 camera in "Disk" mode with 2.00.23 or 2.00.24 firmware.
++ */
++UNUSUAL_DEV(  0x03f0, 0x4002, 0x0001, 0x0001,
++              "HP",
++              "PhotoSmart R707",
++              US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_CAPACITY),
++
+ /* Reported by Sebastian Kapfer <sebastian_kapfer@gmx.net>
+  * and Olaf Hering <olh@suse.de> (different bcd's, same vendor/product)
+  * for USB floppies that need the SINGLE_LUN enforcement.
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:15 2008
+Message-Id: <20080207204315.277165056@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:38 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Jan Andersson <jan@gaisler.com>,
+ David Brownell <david-b@pacbell.net>
+Subject: [patch 20/45] USB: fix usbtest halt check on big endian systems
+Content-Disposition: inline; filename=usb-fix-usbtest-halt-check-on-big-endian-systems.patch
+Content-Length: 750
+Lines: 27
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Jan Andersson <jan@gaisler.com>
+
+usbtest did not swap the received status information when checking for
+a non-zero value and failed to discover halted endpoints on big endian
+systems.
+
+Signed-off-by: Jan Andersson <jan@gaisler.com>
+Acked-by: David Brownell <david-b@pacbell.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/misc/usbtest.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/misc/usbtest.c
++++ b/drivers/usb/misc/usbtest.c
+@@ -1151,6 +1151,7 @@ static int verify_halted (int ep, struct
+               dbg ("ep %02x couldn't get halt status, %d", ep, retval);
+               return retval;
+       }
++      le16_to_cpus(&status);
+       if (status != 1) {
+               dbg ("ep %02x bogus status: %04x != 1", ep, status);
+               return -EINVAL;
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:15 2008
+Message-Id: <20080207204315.503002723@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:39 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Janusz <janumix@poczta.fm>,
+ Jon Masters <jcm@redhat.com>
+Subject: [patch 21/45] USB: handle idVendor of 0x0000
+Content-Disposition: inline; filename=usb-handle-idvendor-of-0x0000.patch
+Content-Length: 1698
+Lines: 45
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Greg Kroah-Hartman <gregkh@suse.de>
+
+Some crazy devices in the wild have a vendor id of 0x0000.  If we try to
+add a module alias with this id, we just can't do it due to a check in
+the file2alias.c file.  Change the test to verify that both the vendor
+and product ids are 0x0000 to show a real "blank" module alias.
+
+Note, the module-init-tools package also needs to be changed to properly
+generate the depmod tables.
+
+Cc: Janusz <janumix@poczta.fm>
+Cc: Jon Masters <jcm@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/core/driver.c |    4 ++--
+ scripts/mod/file2alias.c  |    2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/usb/core/driver.c
++++ b/drivers/usb/core/driver.c
+@@ -534,8 +534,8 @@ const struct usb_device_id *usb_match_id
+          id->driver_info is the way to create an entry that
+          indicates that the driver want to examine every
+          device and interface. */
+-      for (; id->idVendor || id->bDeviceClass || id->bInterfaceClass ||
+-             id->driver_info; id++) {
++      for (; id->idVendor || id->idProduct || id->bDeviceClass ||
++             id->bInterfaceClass || id->driver_info; id++) {
+               if (usb_match_one_id(interface, id))
+                       return id;
+       }
+--- a/scripts/mod/file2alias.c
++++ b/scripts/mod/file2alias.c
+@@ -155,7 +155,7 @@ static void do_usb_entry_multi(struct us
+        * Some modules (visor) have empty slots as placeholder for
+        * run-time specification that results in catch-all alias
+        */
+-      if (!(id->idVendor | id->bDeviceClass | id->bInterfaceClass))
++      if (!(id->idVendor | id->idProduct | id->bDeviceClass | id->bInterfaceClass))
+               return;
+       /* Convert numeric bcdDevice range into fnmatch-able pattern(s) */
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:15 2008
+Message-Id: <20080207204315.740974862@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:40 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ linux-usb@vger.kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Stefan Bader <stefan.bader@canonical.com>,
+ Alan Cox <alan@redhat.com>
+Subject: [patch 22/45] USB: Fix usb_serial_driver structure for Kobil cardreader driver.
+Content-Disposition: inline; filename=usb-fix-usb_serial_driver-structure-for-kobil-cardreader-driver.patch
+Content-Length: 732
+Lines: 26
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stefan Bader <stefan.bader@canonical.com>
+
+The device setup did miss to initialize the num_interrupt_out field, thus
+failing to successfully complete the probe function.
+
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+Cc: Alan Cox <alan@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/kobil_sct.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/usb/serial/kobil_sct.c
++++ b/drivers/usb/serial/kobil_sct.c
+@@ -114,6 +114,7 @@ static struct usb_serial_driver kobil_de
+       .usb_driver =           &kobil_driver,
+       .id_table =             id_table,
+       .num_interrupt_in =     NUM_DONT_CARE,
++      .num_interrupt_out =    NUM_DONT_CARE,
+       .num_bulk_in =          0,
+       .num_bulk_out =         0,
+       .num_ports =            1,
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:16 2008
+Message-Id: <20080207204315.965936209@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:41 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ Jeff Garzik <jgarzik@pobox.com>,
+ Andrew Morton <akpm@osdl.org>,
+ nedev <netdev@vger.kernel.org>
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Ayaz Abdulla <aabdulla@nvidia.com>,
+ Jeff Garzik <jeff@garzik.org>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 23/45] forcedeth: mac address mcp77/79
+Content-Disposition: inline; filename=forcedeth-mac-address-mcp77-79.patch
+Content-Length: 5073
+Lines: 65
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Ayaz Abdulla <aabdulla@nvidia.com>
+
+patch 2b91213064bd882c3adf35f028c6d12fab3269ec in mainline.
+
+This patch is a critical fix for MCP77 and MCP79 devices. The feature
+flags were missing the define for correct mac address
+(DEV_HAS_CORRECT_MACADDR).
+
+Signed-off-by: Ayaz Abdulla <aabdulla@nvidia.com>
+Signed-off-by: Jeff Garzik <jeff@garzik.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/forcedeth.c |   16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+--- a/drivers/net/forcedeth.c
++++ b/drivers/net/forcedeth.c
+@@ -5593,35 +5593,35 @@ static struct pci_device_id pci_tbl[] = 
+       },
+       {       /* MCP77 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_32),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {       /* MCP77 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_33),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {       /* MCP77 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_34),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {       /* MCP77 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_35),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {       /* MCP79 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_36),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {       /* MCP79 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_37),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {       /* MCP79 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_38),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {       /* MCP79 Ethernet Controller */
+               PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_39),
+-              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT,
++              .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_MSI|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS_V2|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT|DEV_HAS_CORRECT_MACADDR,
+       },
+       {0,},
+ };
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:16 2008
+Message-Id: <20080207204316.195134186@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:42 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ torvalds@linux-foundation.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ stefanr@s5r6.in-berlin.de,
+ a.p.zijlstra@chello.nl,
+ davidel@xmailserver.org
+Subject: [patch 24/45] lockdep: annotate epoll
+Content-Disposition: inline; filename=lockdep-annotate-epoll.patch
+Content-Length: 3128
+Lines: 89
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Peter Zijlstra <a.p.zijlstra@chello.nl>
+
+patch 0ccf831cbee94df9c5006dd46248c0f07847dd7c in mainline.
+
+On Sat, 2008-01-05 at 13:35 -0800, Davide Libenzi wrote:
+
+> I remember I talked with Arjan about this time ago. Basically, since 1)
+> you can drop an epoll fd inside another epoll fd 2) callback-based wakeups
+> are used, you can see a wake_up() from inside another wake_up(), but they
+> will never refer to the same lock instance.
+> Think about:
+>
+>      dfd = socket(...);
+>      efd1 = epoll_create();
+>      efd2 = epoll_create();
+>      epoll_ctl(efd1, EPOLL_CTL_ADD, dfd, ...);
+>      epoll_ctl(efd2, EPOLL_CTL_ADD, efd1, ...);
+>
+> When a packet arrives to the device underneath "dfd", the net code will
+> issue a wake_up() on its poll wake list. Epoll (efd1) has installed a
+> callback wakeup entry on that queue, and the wake_up() performed by the
+> "dfd" net code will end up in ep_poll_callback(). At this point epoll
+> (efd1) notices that it may have some event ready, so it needs to wake up
+> the waiters on its poll wait list (efd2). So it calls ep_poll_safewake()
+> that ends up in another wake_up(), after having checked about the
+> recursion constraints. That are, no more than EP_MAX_POLLWAKE_NESTS, to
+> avoid stack blasting. Never hit the same queue, to avoid loops like:
+>
+>      epoll_ctl(efd2, EPOLL_CTL_ADD, efd1, ...);
+>      epoll_ctl(efd3, EPOLL_CTL_ADD, efd2, ...);
+>      epoll_ctl(efd4, EPOLL_CTL_ADD, efd3, ...);
+>      epoll_ctl(efd1, EPOLL_CTL_ADD, efd4, ...);
+>
+> The code "if (tncur->wq == wq || ..." prevents re-entering the same
+> queue/lock.
+
+Since the epoll code is very careful to not nest same instance locks
+allow the recursion.
+
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Tested-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Acked-by: Davide Libenzi <davidel@xmailserver.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/eventpoll.c       |    2 +-
+ include/linux/wait.h |   16 ++++++++++++++++
+ 2 files changed, 17 insertions(+), 1 deletion(-)
+
+--- a/fs/eventpoll.c
++++ b/fs/eventpoll.c
+@@ -353,7 +353,7 @@ static void ep_poll_safewake(struct poll
+       spin_unlock_irqrestore(&psw->lock, flags);
+       /* Do really wake up now */
+-      wake_up(wq);
++      wake_up_nested(wq, 1 + wake_nests);
+       /* Remove the current task from the list */
+       spin_lock_irqsave(&psw->lock, flags);
+--- a/include/linux/wait.h
++++ b/include/linux/wait.h
+@@ -161,6 +161,22 @@ wait_queue_head_t *FASTCALL(bit_waitqueu
+ #define       wake_up_locked(x)               __wake_up_locked((x), TASK_UNINTERRUPTIBLE | TASK_INTERRUPTIBLE)
+ #define wake_up_interruptible_sync(x)   __wake_up_sync((x),TASK_INTERRUPTIBLE, 1)
++#ifdef CONFIG_DEBUG_LOCK_ALLOC
++/*
++ * macro to avoid include hell
++ */
++#define wake_up_nested(x, s)                                          \
++do {                                                                  \
++      unsigned long flags;                                            \
++                                                                      \
++      spin_lock_irqsave_nested(&(x)->lock, flags, (s));               \
++      wake_up_locked(x);                                              \
++      spin_unlock_irqrestore(&(x)->lock, flags);                      \
++} while (0)
++#else
++#define wake_up_nested(x, s)          wake_up(x)
++#endif
++
+ #define __wait_event(wq, condition)                                   \
+ do {                                                                  \
+       DEFINE_WAIT(__wait);                                            \
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:16 2008
+Message-Id: <20080207204316.424546949@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:43 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ torvalds@linux-foundation.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ mszeredi@suse.cz,
+ oleg@tv-sign.ru
+Subject: [patch 25/45] sys_remap_file_pages: fix ->vm_file accounting
+Content-Disposition: inline; filename=sys_remap_file_pages-fix-vm_file-accounting.patch
+Content-Length: 982
+Lines: 36
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Oleg Nesterov <oleg@tv-sign.ru>
+
+patch 8a459e44ad837018ea5c34a9efe8eb4ad27ded26 in mainline.
+
+Fix ->vm_file accounting, mmap_region() may do do_munmap().
+
+Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
+Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+---
+
+ mm/fremap.c |    5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/mm/fremap.c
++++ b/mm/fremap.c
+@@ -190,10 +190,13 @@ asmlinkage long sys_remap_file_pages(uns
+                */
+               if (mapping_cap_account_dirty(mapping)) {
+                       unsigned long addr;
++                      struct file *file = vma->vm_file;
+                       flags &= MAP_NONBLOCK;
+-                      addr = mmap_region(vma->vm_file, start, size,
++                      get_file(file);
++                      addr = mmap_region(file, start, size,
+                                       flags, vma->vm_flags, pgoff, 1);
++                      fput(file);
+                       if (IS_ERR_VALUE(addr)) {
+                               err = addr;
+                       } else {
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:16 2008
+Message-Id: <20080207204316.651252794@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:44 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ linux-pci@atrey.karlin.mff.cuni.cz,
+ Ian Abbott <abbotti@mev.co.uk>
+Subject: [patch 26/45] PCI: Fix fakephp deadlock
+Content-Disposition: inline; filename=pci-fix-fakephp-deadlock.patch
+Content-Length: 3974
+Lines: 131
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Ian Abbott <abbotti@mev.co.uk>
+
+This patch works around a problem in the fakephp driver when a process
+writing "0" to a "power" sysfs file to fake removal of a PCI device ends
+up deadlocking itself in the sysfs code.
+
+The patch was recently accepted into Linus' tree after the 2.6.24 release:
+http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=5c796ae7a7ebe56967ed9b9963d7c16d733635ff
+
+Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/hotplug/fakephp.c |   39 +++++++++++++++++++++++++++++++++++----
+ 1 file changed, 35 insertions(+), 4 deletions(-)
+
+--- a/drivers/pci/hotplug/fakephp.c
++++ b/drivers/pci/hotplug/fakephp.c
+@@ -39,6 +39,7 @@
+ #include <linux/init.h>
+ #include <linux/string.h>
+ #include <linux/slab.h>
++#include <linux/workqueue.h>
+ #include "../pci.h"
+ #if !defined(MODULE)
+@@ -63,10 +64,16 @@ struct dummy_slot {
+       struct list_head node;
+       struct hotplug_slot *slot;
+       struct pci_dev *dev;
++      struct work_struct remove_work;
++      unsigned long removed;
+ };
+ static int debug;
+ static LIST_HEAD(slot_list);
++static struct workqueue_struct *dummyphp_wq;
++
++static void pci_rescan_worker(struct work_struct *work);
++static DECLARE_WORK(pci_rescan_work, pci_rescan_worker);
+ static int enable_slot (struct hotplug_slot *slot);
+ static int disable_slot (struct hotplug_slot *slot);
+@@ -109,7 +116,7 @@ static int add_slot(struct pci_dev *dev)
+       slot->name = &dev->dev.bus_id[0];
+       dbg("slot->name = %s\n", slot->name);
+-      dslot = kmalloc(sizeof(struct dummy_slot), GFP_KERNEL);
++      dslot = kzalloc(sizeof(struct dummy_slot), GFP_KERNEL);
+       if (!dslot)
+               goto error_info;
+@@ -164,6 +171,14 @@ static void remove_slot(struct dummy_slo
+               err("Problem unregistering a slot %s\n", dslot->slot->name);
+ }
++/* called from the single-threaded workqueue handler to remove a slot */
++static void remove_slot_worker(struct work_struct *work)
++{
++      struct dummy_slot *dslot =
++              container_of(work, struct dummy_slot, remove_work);
++      remove_slot(dslot);
++}
++
+ /**
+  * pci_rescan_slot - Rescan slot
+  * @temp: Device template. Should be set: bus and devfn.
+@@ -267,11 +282,17 @@ static inline void pci_rescan(void) {
+       pci_rescan_buses(&pci_root_buses);
+ }
++/* called from the single-threaded workqueue handler to rescan all pci buses */
++static void pci_rescan_worker(struct work_struct *work)
++{
++      pci_rescan();
++}
+ static int enable_slot(struct hotplug_slot *hotplug_slot)
+ {
+       /* mis-use enable_slot for rescanning of the pci bus */
+-      pci_rescan();
++      cancel_work_sync(&pci_rescan_work);
++      queue_work(dummyphp_wq, &pci_rescan_work);
+       return -ENODEV;
+ }
+@@ -306,6 +327,10 @@ static int disable_slot(struct hotplug_s
+               err("Can't remove PCI devices with other PCI devices behind it yet.\n");
+               return -ENODEV;
+       }
++      if (test_and_set_bit(0, &dslot->removed)) {
++              dbg("Slot already scheduled for removal\n");
++              return -ENODEV;
++      }
+       /* search for subfunctions and disable them first */
+       if (!(dslot->dev->devfn & 7)) {
+               for (func = 1; func < 8; func++) {
+@@ -328,8 +353,9 @@ static int disable_slot(struct hotplug_s
+       /* remove the device from the pci core */
+       pci_remove_bus_device(dslot->dev);
+-      /* blow away this sysfs entry and other parts. */
+-      remove_slot(dslot);
++      /* queue work item to blow away this sysfs entry and other parts. */
++      INIT_WORK(&dslot->remove_work, remove_slot_worker);
++      queue_work(dummyphp_wq, &dslot->remove_work);
+       return 0;
+ }
+@@ -340,6 +366,7 @@ static void cleanup_slots (void)
+       struct list_head *next;
+       struct dummy_slot *dslot;
++      destroy_workqueue(dummyphp_wq);
+       list_for_each_safe (tmp, next, &slot_list) {
+               dslot = list_entry (tmp, struct dummy_slot, node);
+               remove_slot(dslot);
+@@ -351,6 +378,10 @@ static int __init dummyphp_init(void)
+ {
+       info(DRIVER_DESC "\n");
++      dummyphp_wq = create_singlethread_workqueue(MY_NAME);
++      if (!dummyphp_wq)
++              return -ENOMEM;
++
+       return pci_scan_buses();
+ }
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:17 2008
+Message-Id: <20080207204316.876873553@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:45 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Len Brown <len.brown@intel.com>
+Subject: [patch 27/45] ACPI: update ACPI blacklist
+Content-Disposition: inline; filename=acpi-update-acpi-blacklist.patch
+Content-Length: 4598
+Lines: 152
+
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Len Brown <len.brown@intel.com>
+
+These minor changes sync the latest ACPI blacklist into 2.6.24.
+The main benefit of this patch is to make any future
+changes easier to apply.  The immediate benefit is one less
+dmesg line on Acer systems.
+
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/acpi/blacklist.c    |   23 ++++++++++++++---------
+ drivers/acpi/osl.c          |   16 ++++++++--------
+ drivers/firmware/dmi_scan.c |    9 ---------
+ include/linux/dmi.h         |    2 --
+ 4 files changed, 22 insertions(+), 28 deletions(-)
+
+--- a/drivers/acpi/blacklist.c
++++ b/drivers/acpi/blacklist.c
+@@ -208,24 +208,24 @@ static struct dmi_system_id acpi_osi_dmi
+        * Disable OSI(Linux) warnings on all "Acer, inc."
+        *
+        * _OSI(Linux) disables the latest Windows BIOS code:
++       * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 3100"),
+        * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5050"),
++       * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5100"),
+        * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5580"),
+        * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 3010"),
+        * _OSI(Linux) effect unknown:
+        * DMI_MATCH(DMI_PRODUCT_NAME, "Ferrari 5000"),
+        */
+-      {
+-      .callback = dmi_disable_osi_linux,
+-      .ident = "Acer, inc.",
+-      .matches = {
+-                   DMI_MATCH(DMI_SYS_VENDOR, "Acer, inc."),
+-              },
+-      },
++      /*
++       * note that dmi_check_system() uses strstr()
++       * to match sub-strings rather than !strcmp(),
++       * so "Acer" below matches "Acer, inc." above.
++       */
+       /*
+        * Disable OSI(Linux) warnings on all "Acer"
+        *
+        * _OSI(Linux) effect unknown:
+-       * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5100"),
++       * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5315"),
+        * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"),
+        * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720Z"),
+        * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5520"),
+@@ -300,7 +300,7 @@ static struct dmi_system_id acpi_osi_dmi
+                    DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
+               },
+       },
+-      { /* OSI(Linux) touches USB, breaks suspend to disk */
++      { /* OSI(Linux) touches USB, unknown side-effect */
+       .callback = dmi_disable_osi_linux,
+       .ident = "Dell Dimension 5150",
+       .matches = {
+@@ -474,6 +474,11 @@ static struct dmi_system_id acpi_osi_dmi
+        *
+        * _OSI(Linux) confirmed to be a NOP:
+        * DMI_MATCH(DMI_PRODUCT_NAME, "P1-J150B"),
++       * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"),
++       *
++       * unknown:
++       * DMI_MATCH(DMI_PRODUCT_NAME, "S1-MDGDG"),
++       * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"),
+        */
+       {
+       .callback = dmi_disable_osi_linux,
+--- a/drivers/acpi/osl.c
++++ b/drivers/acpi/osl.c
+@@ -120,7 +120,7 @@ static char osi_additional_string[OSI_ST
+  */
+ #define OSI_LINUX_ENABLE 0
+-struct osi_linux {
++static struct osi_linux {
+       unsigned int    enable:1;
+       unsigned int    dmi:1;
+       unsigned int    cmdline:1;
+@@ -1213,24 +1213,24 @@ acpi_status acpi_os_release_object(acpi_
+  *
+  *    Returns 0 on success
+  */
+-int acpi_dmi_dump(void)
++static int acpi_dmi_dump(void)
+ {
+       if (!dmi_available)
+               return -1;
+       printk(KERN_NOTICE PREFIX "DMI System Vendor: %s\n",
+-              dmi_get_slot(DMI_SYS_VENDOR));
++              dmi_get_system_info(DMI_SYS_VENDOR));
+       printk(KERN_NOTICE PREFIX "DMI Product Name: %s\n",
+-              dmi_get_slot(DMI_PRODUCT_NAME));
++              dmi_get_system_info(DMI_PRODUCT_NAME));
+       printk(KERN_NOTICE PREFIX "DMI Product Version: %s\n",
+-              dmi_get_slot(DMI_PRODUCT_VERSION));
++              dmi_get_system_info(DMI_PRODUCT_VERSION));
+       printk(KERN_NOTICE PREFIX "DMI Board Name: %s\n",
+-              dmi_get_slot(DMI_BOARD_NAME));
++              dmi_get_system_info(DMI_BOARD_NAME));
+       printk(KERN_NOTICE PREFIX "DMI BIOS Vendor: %s\n",
+-              dmi_get_slot(DMI_BIOS_VENDOR));
++              dmi_get_system_info(DMI_BIOS_VENDOR));
+       printk(KERN_NOTICE PREFIX "DMI BIOS Date: %s\n",
+-              dmi_get_slot(DMI_BIOS_DATE));
++              dmi_get_system_info(DMI_BIOS_DATE));
+       return 0;
+ }
+--- a/drivers/firmware/dmi_scan.c
++++ b/drivers/firmware/dmi_scan.c
+@@ -469,12 +469,3 @@ int dmi_get_year(int field)
+       return year;
+ }
+-
+-/**
+- *    dmi_get_slot - return dmi_ident[slot]
+- *    @slot:  index into dmi_ident[]
+- */
+-char *dmi_get_slot(int slot)
+-{
+-      return(dmi_ident[slot]);
+-}
+--- a/include/linux/dmi.h
++++ b/include/linux/dmi.h
+@@ -79,7 +79,6 @@ extern void dmi_scan_machine(void);
+ extern int dmi_get_year(int field);
+ extern int dmi_name_in_vendors(const char *str);
+ extern int dmi_available;
+-extern char *dmi_get_slot(int slot);
+ #else
+@@ -90,7 +89,6 @@ static inline const struct dmi_device * 
+ static inline int dmi_get_year(int year) { return 0; }
+ static inline int dmi_name_in_vendors(const char *s) { return 0; }
+ #define dmi_available 0
+-static inline char *dmi_get_slot(int slot) { return NULL; }
+ #endif
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:17 2008
+Message-Id: <20080207204317.103489448@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:46 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Sam Ravnborg <sam@ravnborg.org>,
+ "Cc: Ingo Molnar" <mingo@elte.hu>,
+ "H. Peter Anvin" <hpa@zytor.com>,
+ "A.E.Lawrence" <lawrence_a_e@ntlworld.com>,
+ Thomas Gleixner <tglx@linutronix.de>
+Subject: [patch 28/45] x86: restore correct module name for apm
+Content-Disposition: inline; filename=x86-restore-correct-module-name-for-apm.patch
+Content-Length: 1259
+Lines: 37
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Sam Ravnborg <sam@ravnborg.org>
+
+patch 3a900d89db35c133bc0874e71d9156b22db362b4 in mainline
+
+The apm module were renamed to apm_32 during the merge of 32 and 64 bit
+x86 which is unfortunate. As apm is 32 bit specific we like to keep the
+_32 in the filename but the module should be named apm.
+
+Fix this in the Makefile.
+
+Reported-by: "A.E.Lawrence" <lawrence_a_e@ntlworld.com>
+Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
+Cc: Cc: Ingo Molnar <mingo@elte.hu>
+Cc: "H. Peter Anvin" <hpa@zytor.com>
+Cc: "A.E.Lawrence" <lawrence_a_e@ntlworld.com>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/Makefile_32 |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/arch/x86/kernel/Makefile_32
++++ b/arch/x86/kernel/Makefile_32
+@@ -19,7 +19,8 @@ obj-$(CONFIG_X86_MSR)                += msr.o
+ obj-$(CONFIG_X86_CPUID)               += cpuid.o
+ obj-$(CONFIG_MICROCODE)               += microcode.o
+ obj-$(CONFIG_PCI)             += early-quirks.o
+-obj-$(CONFIG_APM)             += apm_32.o
++apm-y                         := apm_32.o
++obj-$(CONFIG_APM)             += apm.o
+ obj-$(CONFIG_X86_SMP)         += smp_32.o smpboot_32.o tsc_sync.o
+ obj-$(CONFIG_SMP)             += smpcommon_32.o
+ obj-$(CONFIG_X86_TRAMPOLINE)  += trampoline_32.o
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:17 2008
+Message-Id: <20080207204317.329787970@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:47 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Stephen Hemminger <shemminger@linux-foundation.org>
+Subject: [patch 29/45] sky2: restore multicast addresses after recovery
+Content-Disposition: inline; filename=sky2-restore-multicast-addresses-after-recovery.patch
+Content-Length: 1081
+Lines: 45
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stephen Hemminger <shemminger@linux-foundation.org>
+
+patch a7bffe722c996679b4fb2103ecaf673ec2b9b4a7 in mainline.
+
+If the sky2 deadman timer forces a recovery, the multicast hash
+list is lost. Move the call to sky2_set_multicast to the end
+of sky2_up() so all paths that bring device up will restore multicast.
+
+Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/sky2.c |    5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+--- a/drivers/net/sky2.c
++++ b/drivers/net/sky2.c
+@@ -1412,6 +1412,7 @@ static int sky2_up(struct net_device *de
+       imask |= portirq_msk[port];
+       sky2_write32(hw, B0_IMSK, imask);
++      sky2_set_multicast(dev);
+       return 0;
+ err_out:
+@@ -3533,8 +3534,6 @@ static int sky2_set_ringparam(struct net
+               err = sky2_up(dev);
+               if (err)
+                       dev_close(dev);
+-              else
+-                      sky2_set_multicast(dev);
+       }
+       return err;
+@@ -4368,8 +4367,6 @@ static int sky2_resume(struct pci_dev *p
+                               dev_close(dev);
+                               goto out;
+                       }
+-
+-                      sky2_set_multicast(dev);
+               }
+       }
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:17 2008
+Message-Id: <20080207204317.554980290@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:48 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Stephen Hemminger <shemminger@linux-foundation.org>
+Subject: [patch 30/45] sky2: fix for WOL on some devices
+Content-Disposition: inline; filename=sky2-fix-for-wol-on-some-devices.patch
+Content-Length: 2459
+Lines: 75
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stephen Hemminger <shemminger@linux-foundation.org>
+
+patch 82637e808478087ce861129745fa60cc37e7929d in mainline
+
+This patch disables config mode access after clearing PCI settings.
+Without this change WOL won't work on some BIOS's
+
+Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/sky2.c |    9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/drivers/net/sky2.c
++++ b/drivers/net/sky2.c
+@@ -621,6 +621,7 @@ static void sky2_phy_power(struct sky2_h
+       static const u32 phy_power[] = { PCI_Y2_PHY1_POWD, PCI_Y2_PHY2_POWD };
+       static const u32 coma_mode[] = { PCI_Y2_PHY1_COMA, PCI_Y2_PHY2_COMA };
++      sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
+       reg1 = sky2_pci_read32(hw, PCI_DEV_REG1);
+       /* Turn on/off phy power saving */
+       if (onoff)
+@@ -632,7 +633,8 @@ static void sky2_phy_power(struct sky2_h
+               reg1 |= coma_mode[port];
+       sky2_pci_write32(hw, PCI_DEV_REG1, reg1);
+-      reg1 = sky2_pci_read32(hw, PCI_DEV_REG1);
++      sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
++      sky2_pci_read32(hw, PCI_DEV_REG1);
+       udelay(100);
+ }
+@@ -2427,6 +2429,7 @@ static void sky2_hw_intr(struct sky2_hw 
+       if (status & (Y2_IS_MST_ERR | Y2_IS_IRQ_STAT)) {
+               u16 pci_err;
++              sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
+               pci_err = sky2_pci_read16(hw, PCI_STATUS);
+               if (net_ratelimit())
+                       dev_err(&pdev->dev, "PCI hardware error (0x%x)\n",
+@@ -2434,12 +2437,14 @@ static void sky2_hw_intr(struct sky2_hw 
+               sky2_pci_write16(hw, PCI_STATUS,
+                                     pci_err | PCI_STATUS_ERROR_BITS);
++              sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
+       }
+       if (status & Y2_IS_PCI_EXP) {
+               /* PCI-Express uncorrectable Error occurred */
+               u32 err;
++              sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON);
+               err = sky2_read32(hw, Y2_CFG_AER + PCI_ERR_UNCOR_STATUS);
+               sky2_write32(hw, Y2_CFG_AER + PCI_ERR_UNCOR_STATUS,
+                            0xfffffffful);
+@@ -2447,6 +2452,7 @@ static void sky2_hw_intr(struct sky2_hw 
+                       dev_err(&pdev->dev, "PCI Express error (0x%x)\n", err);
+               sky2_read32(hw, Y2_CFG_AER + PCI_ERR_UNCOR_STATUS);
++              sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
+       }
+       if (status & Y2_HWE_L1_MASK)
+@@ -2812,6 +2818,7 @@ static void sky2_reset(struct sky2_hw *h
+       }
+       sky2_power_on(hw);
++      sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF);
+       for (i = 0; i < hw->ports; i++) {
+               sky2_write8(hw, SK_REG(i, GMAC_LINK_CTRL), GMLC_RST_SET);
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:17 2008
+Message-Id: <20080207204317.779802811@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:49 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ linux-wireless@vger.kernel.org,
+ bcm43xx-dev@lists.berlios.de,
+ Michael Buesch <mb@bu3sch.de>,
+ "John W. Linville" <linville@tuxdriver.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 31/45] b43: Fix suspend/resume
+Content-Disposition: inline; filename=b43-fix-suspend-resume.patch
+Content-Length: 1775
+Lines: 50
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Michael Buesch <mb@bu3sch.de>
+
+patch 7be1bb6b798d506693d2d8668e801951996b5a4a in mainline.
+
+This patch makes suspend/resume work with the b43 driver.
+We must not overwrite the MAC addresses in the init function, as this
+would also overwrite the MAC on resume. With an all-zero MAC the device
+firmware is not able to ACK any received packets anymore.
+Fix this by moving the initializion stuff that must be done on init but
+not on resume to the start function.
+Also zero out filter_flags to make sure we don't have some flags
+from a previous instance for a tiny timeframe until mac80211 reconfigures
+them.
+
+Signed-off-by: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43/main.c |    9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/b43/main.c
++++ b/drivers/net/wireless/b43/main.c
+@@ -3395,8 +3395,6 @@ static int b43_wireless_core_init(struct
+       b43_bluetooth_coext_enable(dev);
+       ssb_bus_powerup(bus, 1);        /* Enable dynamic PCTL */
+-      memset(wl->bssid, 0, ETH_ALEN);
+-      memset(wl->mac_addr, 0, ETH_ALEN);
+       b43_upload_card_macaddress(dev);
+       b43_security_init(dev);
+       b43_rng_init(wl);
+@@ -3493,6 +3491,13 @@ static int b43_start(struct ieee80211_hw
+       int did_init = 0;
+       int err = 0;
++      /* Kill all old instance specific information to make sure
++       * the card won't use it in the short timeframe between start
++       * and mac80211 reconfiguring it. */
++      memset(wl->bssid, 0, ETH_ALEN);
++      memset(wl->mac_addr, 0, ETH_ALEN);
++      wl->filter_flags = 0;
++
+       /* First register RFkill.
+        * LEDs that are registered later depend on it. */
+       b43_rfkill_init(dev);
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:18 2008
+Message-Id: <20080207204318.004970820@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:50 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ linux-wireless@vger.kernel.org,
+ bcm43xx-dev@lists.berlios.de,
+ Michael Buesch <mb@bu3sch.de>,
+ "John W. Linville" <linville@tuxdriver.com>,
+ "David S. Miller" <davem@davemloft.net>
+Subject: [patch 32/45] b43: Drop packets we are not able to encrypt
+Content-Disposition: inline; filename=b43-drop-packets-we-are-not-able-to-encrypt.patch
+Content-Length: 4074
+Lines: 118
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Michael Buesch <mb@bu3sch.de>
+
+patch 09552ccd8277e6382097e93a40f7311a09449367 in mainline
+
+We must drop any packets we are not able to encrypt.
+We must not send them unencrypted or with an all-zero-key (which
+basically is the same as unencrypted, from a security point of view).
+
+This might only trigger shortly after resume before mac80211 reassociated
+and reconfigured the keys.
+
+It is safe to drop these packets, as the association they belong to
+is not guaranteed anymore anyway.
+This is a security fix in the sense that it prevents information leakage.
+
+Signed-off-by: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43/dma.c  |   11 ++++++++++-
+ drivers/net/wireless/b43/xmit.c |   20 +++++++++++++++-----
+ drivers/net/wireless/b43/xmit.h |    2 +-
+ 3 files changed, 26 insertions(+), 7 deletions(-)
+
+--- a/drivers/net/wireless/b43/dma.c
++++ b/drivers/net/wireless/b43/dma.c
+@@ -1122,9 +1122,11 @@ static int dma_tx_fragment(struct b43_dm
+       memset(meta_hdr, 0, sizeof(*meta_hdr));
+       header = &(ring->txhdr_cache[slot * sizeof(struct b43_txhdr_fw4)]);
+-      b43_generate_txhdr(ring->dev, header,
++      err = b43_generate_txhdr(ring->dev, header,
+                          skb->data, skb->len, ctl,
+                          generate_cookie(ring, slot));
++      if (unlikely(err))
++              return err;
+       meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header,
+                                          sizeof(struct b43_txhdr_fw4), 1);
+@@ -1219,6 +1221,13 @@ int b43_dma_tx(struct b43_wldev *dev,
+       B43_WARN_ON(ring->stopped);
+       err = dma_tx_fragment(ring, skb, ctl);
++      if (unlikely(err == -ENOKEY)) {
++              /* Drop this packet, as we don't have the encryption key
++               * anymore and must not transmit it unencrypted. */
++              dev_kfree_skb_any(skb);
++              err = 0;
++              goto out_unlock;
++      }
+       if (unlikely(err)) {
+               b43err(dev->wl, "DMA tx mapping failure\n");
+               goto out_unlock;
+--- a/drivers/net/wireless/b43/xmit.c
++++ b/drivers/net/wireless/b43/xmit.c
+@@ -177,7 +177,7 @@ static u8 b43_calc_fallback_rate(u8 bitr
+       return 0;
+ }
+-static void generate_txhdr_fw4(struct b43_wldev *dev,
++static int generate_txhdr_fw4(struct b43_wldev *dev,
+                              struct b43_txhdr_fw4 *txhdr,
+                              const unsigned char *fragment_data,
+                              unsigned int fragment_len,
+@@ -235,7 +235,15 @@ static void generate_txhdr_fw4(struct b4
+               B43_WARN_ON(key_idx >= dev->max_nr_keys);
+               key = &(dev->key[key_idx]);
+-              B43_WARN_ON(!key->keyconf);
++
++              if (unlikely(!key->keyconf)) {
++                      /* This key is invalid. This might only happen
++                       * in a short timeframe after machine resume before
++                       * we were able to reconfigure keys.
++                       * Drop this packet completely. Do not transmit it
++                       * unencrypted to avoid leaking information. */
++                      return -ENOKEY;
++              }
+               /* Hardware appends ICV. */
+               plcp_fragment_len += txctl->icv_len;
+@@ -352,16 +360,18 @@ static void generate_txhdr_fw4(struct b4
+       txhdr->mac_ctl = cpu_to_le32(mac_ctl);
+       txhdr->phy_ctl = cpu_to_le16(phy_ctl);
+       txhdr->extra_ft = extra_ft;
++
++      return 0;
+ }
+-void b43_generate_txhdr(struct b43_wldev *dev,
++int b43_generate_txhdr(struct b43_wldev *dev,
+                       u8 * txhdr,
+                       const unsigned char *fragment_data,
+                       unsigned int fragment_len,
+                       const struct ieee80211_tx_control *txctl, u16 cookie)
+ {
+-      generate_txhdr_fw4(dev, (struct b43_txhdr_fw4 *)txhdr,
+-                         fragment_data, fragment_len, txctl, cookie);
++      return generate_txhdr_fw4(dev, (struct b43_txhdr_fw4 *)txhdr,
++                                fragment_data, fragment_len, txctl, cookie);
+ }
+ static s8 b43_rssi_postprocess(struct b43_wldev *dev,
+--- a/drivers/net/wireless/b43/xmit.h
++++ b/drivers/net/wireless/b43/xmit.h
+@@ -82,7 +82,7 @@ struct b43_txhdr_fw4 {
+ #define  B43_TX4_PHY_ANT1             0x0100  /* Use antenna 1 */
+ #define  B43_TX4_PHY_ANTLAST  0x0300  /* Use last used antenna */
+-void b43_generate_txhdr(struct b43_wldev *dev,
++int b43_generate_txhdr(struct b43_wldev *dev,
+                       u8 * txhdr,
+                       const unsigned char *fragment_data,
+                       unsigned int fragment_len,
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:18 2008
+Message-Id: <20080207204318.233747962@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:51 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ linux-wireless@vger.kernel.org,
+ bcm43xx-dev@lists.berlios.de,
+ Michael Buesch <mb@bu3sch.de>,
+ Stefano Brivio <stefano.brivio@polimi.it>,
+ "John W. Linville" <linville@tuxdriver.com>
+Subject: [patch 33/45] b43: Fix dma-slot resource leakage
+Content-Disposition: inline; filename=b43-fix-dma-slot-resource-leakage.patch
+Content-Length: 2705
+Lines: 82
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Michael Buesch <mb@bu3sch.de>
+
+patch 8dd0100ce9511e52614ecd0a6587c13ce5769c8b in mainline.
+
+This fixes four resource leakages.
+In any error path we must deallocate the DMA frame slots we
+previously allocated by request_slot().
+This is done by storing the ring pointers before doing any ring
+allocation and restoring the old pointers in case of an error.
+
+Signed-off-by: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43/dma.c |   19 ++++++++++++++++---
+ 1 file changed, 16 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/b43/dma.c
++++ b/drivers/net/wireless/b43/dma.c
+@@ -1106,7 +1106,7 @@ static int dma_tx_fragment(struct b43_dm
+ {
+       const struct b43_dma_ops *ops = ring->ops;
+       u8 *header;
+-      int slot;
++      int slot, old_top_slot, old_used_slots;
+       int err;
+       struct b43_dmadesc_generic *desc;
+       struct b43_dmadesc_meta *meta;
+@@ -1116,6 +1116,9 @@ static int dma_tx_fragment(struct b43_dm
+ #define SLOTS_PER_PACKET  2
+       B43_WARN_ON(skb_shinfo(skb)->nr_frags);
++      old_top_slot = ring->current_slot;
++      old_used_slots = ring->used_slots;
++
+       /* Get a slot for the header. */
+       slot = request_slot(ring);
+       desc = ops->idx2desc(ring, slot, &meta_hdr);
+@@ -1125,13 +1128,19 @@ static int dma_tx_fragment(struct b43_dm
+       err = b43_generate_txhdr(ring->dev, header,
+                          skb->data, skb->len, ctl,
+                          generate_cookie(ring, slot));
+-      if (unlikely(err))
++      if (unlikely(err)) {
++              ring->current_slot = old_top_slot;
++              ring->used_slots = old_used_slots;
+               return err;
++      }
+       meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header,
+                                          sizeof(struct b43_txhdr_fw4), 1);
+-      if (dma_mapping_error(meta_hdr->dmaaddr))
++      if (dma_mapping_error(meta_hdr->dmaaddr)) {
++              ring->current_slot = old_top_slot;
++              ring->used_slots = old_used_slots;
+               return -EIO;
++      }
+       ops->fill_descriptor(ring, desc, meta_hdr->dmaaddr,
+                            sizeof(struct b43_txhdr_fw4), 1, 0, 0);
+@@ -1149,6 +1158,8 @@ static int dma_tx_fragment(struct b43_dm
+       if (dma_mapping_error(meta->dmaaddr)) {
+               bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA);
+               if (!bounce_skb) {
++                      ring->current_slot = old_top_slot;
++                      ring->used_slots = old_used_slots;
+                       err = -ENOMEM;
+                       goto out_unmap_hdr;
+               }
+@@ -1159,6 +1170,8 @@ static int dma_tx_fragment(struct b43_dm
+               meta->skb = skb;
+               meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
+               if (dma_mapping_error(meta->dmaaddr)) {
++                      ring->current_slot = old_top_slot;
++                      ring->used_slots = old_used_slots;
+                       err = -EIO;
+                       goto out_free_bounce;
+               }
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:18 2008
+Message-Id: <20080207204318.460625052@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:52 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ linux-wireless@vger.kernel.org,
+ bcm43xx-dev@lists.berlios.de,
+ Stefano Brivio <stefano.brivio@polimi.it>,
+ "John W. Linville" <linville@tuxdriver.com>
+Subject: [patch 34/45] b43legacy: fix PIO crash
+Content-Disposition: inline; filename=b43legacy-fix-pio-crash.patch
+Content-Length: 2901
+Lines: 66
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stefano Brivio <stefano.brivio@polimi.it>
+
+patch 0cd67d48b519c3d8d89d238fab1cf68a5289638a in mainline.
+
+Fix the crash reported below, which seems to happen on bcm4306 rev. 2 devices
+only while using PIO:
+
+Oops: 0000 [#1] PREEMPT
+Modules linked in: b43(F) rfkill(F) led_class(F) input_polldev(F) arc4 b43legacy mac80211 cfg80211 i915 drm snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device ohci1394 ieee1394 ssb pcmcia snd_intel8x0m ehci_hcd uhci_hcd evdev
+
+Pid: 0, comm: swapper Tainted: GF      (2.6.24st3 #2)
+EIP: 0060:[<f90f667b>] EFLAGS: 00010002 CPU: 0
+EIP is at b43legacy_pio_handle_txstatus+0xbb/0x210 [b43legacy]
+EAX: 0000049b EBX: f11f8044 ECX: 00000001 EDX: 00000000
+ESI: f1ff8000 EDI: 00000000 EBP: f11f8040 ESP: c04f4ef4
+ DS: 007b ES: 007b FS: 0000 GS: 0000 SS: 0068
+Process swapper (pid: 0, ti=c04f4000 task=c0488300 task.ti=c04b8000)
+Stack: f90f2788 c05009f0 c0500900 000010f7 f1053823 c04f4f24 dfb8e800 00000003
+       f1368000 00000007 00000296 f90f1975 00001000 010c0800 01000000 00000007
+       f90f6391 f11f8000 00000082 c04f4f4a 00000000 00004fd0 10f70000 8c061000
+Call Trace:
+ [<f90f2788>] b43legacy_debugfs_log_txstat+0x48/0xb0 [b43legacy]
+ [<f90f1975>] b43legacy_handle_hwtxstatus+0x75/0x80 [b43legacy]
+ [<f90f6391>] b43legacy_pio_rx+0x201/0x280 [b43legacy]
+ [<f90e4fa3>] b43legacy_interrupt_tasklet+0x2e3/0x870 [b43legacy]
+ [<c0123567>] tasklet_action+0x27/0x60
+ [<c01237b4>] __do_softirq+0x54/0xb0
+ [<c010686b>] do_softirq+0x7b/0xe0
+ [<c01457c0>] handle_level_irq+0x0/0x110
+ [<c01457c0>] handle_level_irq+0x0/0x110
+ [<c0123758>] irq_exit+0x38/0x40
+ [<c0106953>] do_IRQ+0x83/0xd0
+ [<c011812f>] __update_rq_clock+0x4f/0x180
+ [<c0104b4f>] common_interrupt+0x23/0x28
+ [<c011007b>] wakeup_code+0x7b/0xde
+ [<c02b1039>] acpi_processor_idle+0x24a/0x3c9
+ [<c01025c7>] cpu_idle+0x47/0x80
+ [<c04b9ad5>] start_kernel+0x205/0x290
+ [<c04b9360>] unknown_bootoption+0x0/0x1f0
+ =======================
+Code: 0f 00 00 81 fb ff 00 00 00 0f 87 36 01 00 00 8d 04 db 85 ff 8d 6c c6 40 8d 5d 04 0f 85 ef 00 00 00 fe 4e 0e 0f b7 46 0c 8b 53 04 <8b> 4a 50 29 c8 83 e8 52 66 89 46 0c 8b 54 24 14 80 7a 0b 00 74
+EIP: [<f90f667b>] b43legacy_pio_handle_txstatus+0xbb/0x210 [b43legacy] SS:ESP 0068:c04f4ef4
+Kernel panic - not syncing: Fatal exception in interrupt
+
+Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43legacy/pio.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/net/wireless/b43legacy/pio.c
++++ b/drivers/net/wireless/b43legacy/pio.c
+@@ -486,6 +486,9 @@ void b43legacy_pio_handle_txstatus(struc
+       queue = parse_cookie(dev, status->cookie, &packet);
+       B43legacy_WARN_ON(!queue);
++      if (!packet->skb)
++              return;
++
+       queue->tx_devq_packets--;
+       queue->tx_devq_used -= (packet->skb->len +
+                               sizeof(struct b43legacy_txhdr_fw3));
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:18 2008
+Message-Id: <20080207204318.686055558@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:53 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Michael@hera.kernel.org,
+ linux-wireless@vger.kernel.org,
+ bcm43xx-dev@lists.berlios.de,
+ Buesch <mb@bu3sch.de>,
+ Stefano Brivio <stefano.brivio@polimi.it>,
+ "John W. Linville" <linville@tuxdriver.com>
+Subject: [patch 35/45] b43legacy: fix suspend/resume
+Content-Disposition: inline; filename=b43legacy-fix-suspend-resume.patch
+Content-Length: 1898
+Lines: 52
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stefano Brivio <stefano.brivio@polimi.it>
+
+patch ada50731c0346bf900dc387edd3a6961297bf2d3 in mainline.
+
+This patch makes suspend/resume work with the b43legacy driver.
+We must not overwrite the MAC addresses in the init function, as this
+would also overwrite the MAC on resume. With an all-zero MAC the device
+firmware is not able to ACK any received packets anymore.
+Fix this by moving the initializion stuff that must be done on init but
+not on resume to the start function.
+Also zero out filter_flags to make sure we don't have some flags
+from a previous instance for a tiny timeframe until mac80211 reconfigures
+them.
+
+This patch by Michael Buesch has been ported to b43legacy.
+
+Cc: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43legacy/main.c |    9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/b43legacy/main.c
++++ b/drivers/net/wireless/b43legacy/main.c
+@@ -3215,8 +3215,6 @@ static int b43legacy_wireless_core_init(
+       b43legacy_shm_write16(dev, B43legacy_SHM_SHARED, 0x0414, 0x01F4);
+       ssb_bus_powerup(bus, 1); /* Enable dynamic PCTL */
+-      memset(wl->bssid, 0, ETH_ALEN);
+-      memset(wl->mac_addr, 0, ETH_ALEN);
+       b43legacy_upload_card_macaddress(dev);
+       b43legacy_security_init(dev);
+       b43legacy_rng_init(wl);
+@@ -3311,6 +3309,13 @@ static int b43legacy_start(struct ieee80
+       int did_init = 0;
+       int err = 0;
++      /* Kill all old instance specific information to make sure
++       * the card won't use it in the short timeframe between start
++       * and mac80211 reconfiguring it. */
++      memset(wl->bssid, 0, ETH_ALEN);
++      memset(wl->mac_addr, 0, ETH_ALEN);
++      wl->filter_flags = 0;
++
+       mutex_lock(&wl->mutex);
+       if (b43legacy_status(dev) < B43legacy_STAT_INITIALIZED) {
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:19 2008
+Message-Id: <20080207204318.911484426@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:54 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Michael@hera.kernel.org,
+ linux-wireless@vger.kernel.org,
+ bcm43xx-dev@lists.berlios.de,
+ Buesch <mb@bu3sch.de>,
+ Stefano Brivio <stefano.brivio@polimi.it>,
+ "John W. Linville" <linville@tuxdriver.com>
+Subject: [patch 36/45] b43legacy: drop packets we are not able to encrypt
+Content-Disposition: inline; filename=b43legacy-drop-packets-we-are-not-able-to-encrypt.patch
+Content-Length: 6194
+Lines: 180
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stefano Brivio <stefano.brivio@polimi.it>
+
+patch 9eca9a8e81928685b4de00ecef83a7c13c340fc9 in mainline.
+
+We must drop any packets we are not able to encrypt.
+We must not send them unencrypted or with an all-zero-key (which
+basically is the same as unencrypted, from a security point of view).
+
+This might only trigger shortly after resume before mac80211 reassociated
+and reconfigured the keys.
+
+It is safe to drop these packets, as the association they belong to
+is not guaranteed anymore anyway.
+This is a security fix in the sense that it prevents information leakage.
+
+This patch by Michael Buesch has been ported to b43legacy.
+
+Cc: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43legacy/dma.c  |   11 ++++++++++-
+ drivers/net/wireless/b43legacy/pio.c  |   18 +++++++++++++++---
+ drivers/net/wireless/b43legacy/xmit.c |   15 ++++++++++++---
+ drivers/net/wireless/b43legacy/xmit.h |    2 +-
+ 4 files changed, 38 insertions(+), 8 deletions(-)
+
+--- a/drivers/net/wireless/b43legacy/dma.c
++++ b/drivers/net/wireless/b43legacy/dma.c
+@@ -1181,9 +1181,11 @@ static int dma_tx_fragment(struct b43leg
+       header = &(ring->txhdr_cache[slot * sizeof(
+                              struct b43legacy_txhdr_fw3)]);
+-      b43legacy_generate_txhdr(ring->dev, header,
++      err = b43legacy_generate_txhdr(ring->dev, header,
+                                skb->data, skb->len, ctl,
+                                generate_cookie(ring, slot));
++      if (unlikely(err))
++              return err;
+       meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header,
+                                      sizeof(struct b43legacy_txhdr_fw3), 1);
+@@ -1282,6 +1284,13 @@ int b43legacy_dma_tx(struct b43legacy_wl
+       B43legacy_BUG_ON(ring->stopped);
+       err = dma_tx_fragment(ring, skb, ctl);
++      if (unlikely(err == -ENOKEY)) {
++              /* Drop this packet, as we don't have the encryption key
++               * anymore and must not transmit it unencrypted. */
++              dev_kfree_skb_any(skb);
++              err = 0;
++              goto out_unlock;
++      }
+       if (unlikely(err)) {
+               b43legacyerr(dev->wl, "DMA tx mapping failure\n");
+               goto out_unlock;
+--- a/drivers/net/wireless/b43legacy/pio.c
++++ b/drivers/net/wireless/b43legacy/pio.c
+@@ -181,7 +181,7 @@ union txhdr_union {
+       struct b43legacy_txhdr_fw3 txhdr_fw3;
+ };
+-static void pio_tx_write_fragment(struct b43legacy_pioqueue *queue,
++static int pio_tx_write_fragment(struct b43legacy_pioqueue *queue,
+                                 struct sk_buff *skb,
+                                 struct b43legacy_pio_txpacket *packet,
+                                 size_t txhdr_size)
+@@ -189,14 +189,17 @@ static void pio_tx_write_fragment(struct
+       union txhdr_union txhdr_data;
+       u8 *txhdr = NULL;
+       unsigned int octets;
++      int err;
+       txhdr = (u8 *)(&txhdr_data.txhdr_fw3);
+       B43legacy_WARN_ON(skb_shinfo(skb)->nr_frags != 0);
+-      b43legacy_generate_txhdr(queue->dev,
++      err = b43legacy_generate_txhdr(queue->dev,
+                                txhdr, skb->data, skb->len,
+                                &packet->txstat.control,
+                                generate_cookie(queue, packet));
++      if (err)
++              return err;
+       tx_start(queue);
+       octets = skb->len + txhdr_size;
+@@ -204,6 +207,8 @@ static void pio_tx_write_fragment(struct
+               octets--;
+       tx_data(queue, txhdr, (u8 *)skb->data, octets);
+       tx_complete(queue, skb);
++
++      return 0;
+ }
+ static void free_txpacket(struct b43legacy_pio_txpacket *packet,
+@@ -226,6 +231,7 @@ static int pio_tx_packet(struct b43legac
+       struct b43legacy_pioqueue *queue = packet->queue;
+       struct sk_buff *skb = packet->skb;
+       u16 octets;
++      int err;
+       octets = (u16)skb->len + sizeof(struct b43legacy_txhdr_fw3);
+       if (queue->tx_devq_size < octets) {
+@@ -247,8 +253,14 @@ static int pio_tx_packet(struct b43legac
+       if (queue->tx_devq_used + octets > queue->tx_devq_size)
+               return -EBUSY;
+       /* Now poke the device. */
+-      pio_tx_write_fragment(queue, skb, packet,
++      err = pio_tx_write_fragment(queue, skb, packet,
+                             sizeof(struct b43legacy_txhdr_fw3));
++      if (unlikely(err == -ENOKEY)) {
++              /* Drop this packet, as we don't have the encryption key
++               * anymore and must not transmit it unencrypted. */
++              free_txpacket(packet, 1);
++              return 0;
++      }
+       /* Account for the packet size.
+        * (We must not overflow the device TX queue)
+--- a/drivers/net/wireless/b43legacy/xmit.c
++++ b/drivers/net/wireless/b43legacy/xmit.c
+@@ -181,7 +181,7 @@ static u8 b43legacy_calc_fallback_rate(u
+       return 0;
+ }
+-static void generate_txhdr_fw3(struct b43legacy_wldev *dev,
++static int generate_txhdr_fw3(struct b43legacy_wldev *dev,
+                              struct b43legacy_txhdr_fw3 *txhdr,
+                              const unsigned char *fragment_data,
+                              unsigned int fragment_len,
+@@ -252,6 +252,13 @@ static void generate_txhdr_fw3(struct b4
+                       iv_len = min((size_t)txctl->iv_len,
+                                    ARRAY_SIZE(txhdr->iv));
+                       memcpy(txhdr->iv, ((u8 *)wlhdr) + wlhdr_len, iv_len);
++              } else {
++                      /* This key is invalid. This might only happen
++                       * in a short timeframe after machine resume before
++                       * we were able to reconfigure keys.
++                       * Drop this packet completely. Do not transmit it
++                       * unencrypted to avoid leaking information. */
++                      return -ENOKEY;
+               }
+       }
+       b43legacy_generate_plcp_hdr((struct b43legacy_plcp_hdr4 *)
+@@ -344,16 +351,18 @@ static void generate_txhdr_fw3(struct b4
+       /* Apply the bitfields */
+       txhdr->mac_ctl = cpu_to_le32(mac_ctl);
+       txhdr->phy_ctl = cpu_to_le16(phy_ctl);
++
++      return 0;
+ }
+-void b43legacy_generate_txhdr(struct b43legacy_wldev *dev,
++int b43legacy_generate_txhdr(struct b43legacy_wldev *dev,
+                             u8 *txhdr,
+                             const unsigned char *fragment_data,
+                             unsigned int fragment_len,
+                             const struct ieee80211_tx_control *txctl,
+                             u16 cookie)
+ {
+-      generate_txhdr_fw3(dev, (struct b43legacy_txhdr_fw3 *)txhdr,
++      return generate_txhdr_fw3(dev, (struct b43legacy_txhdr_fw3 *)txhdr,
+                          fragment_data, fragment_len,
+                          txctl, cookie);
+ }
+--- a/drivers/net/wireless/b43legacy/xmit.h
++++ b/drivers/net/wireless/b43legacy/xmit.h
+@@ -76,7 +76,7 @@ struct b43legacy_txhdr_fw3 {
+-void b43legacy_generate_txhdr(struct b43legacy_wldev *dev,
++int b43legacy_generate_txhdr(struct b43legacy_wldev *dev,
+                             u8 *txhdr,
+                             const unsigned char *fragment_data,
+                             unsigned int fragment_len,
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:19 2008
+Message-Id: <20080207204319.140256630@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:55 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Michael@hera.kernel.org,
+ linux-wireless@vger.kernel.org,
+ bcm43xx-dev@lists.berlios.de,
+ Buesch <mb@bu3sch.de>,
+ Stefano Brivio <stefano.brivio@polimi.it>,
+ "John W. Linville" <linville@tuxdriver.com>
+Subject: [patch 37/45] b43legacy: fix DMA slot resource leakage
+Content-Disposition: inline; filename=b43legacy-fix-dma-slot-resource-leakage.patch
+Content-Length: 2529
+Lines: 75
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stefano Brivio <stefano.brivio@polimi.it>
+
+patch 8dd0100ce9511e52614ecd0a6587c13ce5769c8b in mainline.
+
+This fixes four resource leakages.
+In any error path we must deallocate the DMA frame slots we
+previously allocated by request_slot().
+This is done by storing the ring pointers before doing any ring
+allocation and restoring the old pointers in case of an error.
+
+This patch by Michael Buesch has been ported to b43legacy.
+
+Cc: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: Stefano Brivio <stefano.brivio@polimi.it>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43legacy/dma.c |   14 ++++++++++++--
+ 1 file changed, 12 insertions(+), 2 deletions(-)
+
+--- a/drivers/net/wireless/b43legacy/dma.c
++++ b/drivers/net/wireless/b43legacy/dma.c
+@@ -1164,7 +1164,7 @@ static int dma_tx_fragment(struct b43leg
+ {
+       const struct b43legacy_dma_ops *ops = ring->ops;
+       u8 *header;
+-      int slot;
++      int slot, old_top_slot, old_used_slots;
+       int err;
+       struct b43legacy_dmadesc_generic *desc;
+       struct b43legacy_dmadesc_meta *meta;
+@@ -1174,6 +1174,9 @@ static int dma_tx_fragment(struct b43leg
+ #define SLOTS_PER_PACKET  2
+       B43legacy_WARN_ON(skb_shinfo(skb)->nr_frags != 0);
++      old_top_slot = ring->current_slot;
++      old_used_slots = ring->used_slots;
++
+       /* Get a slot for the header. */
+       slot = request_slot(ring);
+       desc = ops->idx2desc(ring, slot, &meta_hdr);
+@@ -1184,8 +1187,11 @@ static int dma_tx_fragment(struct b43leg
+       err = b43legacy_generate_txhdr(ring->dev, header,
+                                skb->data, skb->len, ctl,
+                                generate_cookie(ring, slot));
+-      if (unlikely(err))
++      if (unlikely(err)) {
++              ring->current_slot = old_top_slot;
++              ring->used_slots = old_used_slots;
+               return err;
++      }
+       meta_hdr->dmaaddr = map_descbuffer(ring, (unsigned char *)header,
+                                      sizeof(struct b43legacy_txhdr_fw3), 1);
+@@ -1208,6 +1214,8 @@ static int dma_tx_fragment(struct b43leg
+       if (dma_mapping_error(meta->dmaaddr)) {
+               bounce_skb = __dev_alloc_skb(skb->len, GFP_ATOMIC | GFP_DMA);
+               if (!bounce_skb) {
++                      ring->current_slot = old_top_slot;
++                      ring->used_slots = old_used_slots;
+                       err = -ENOMEM;
+                       goto out_unmap_hdr;
+               }
+@@ -1218,6 +1226,8 @@ static int dma_tx_fragment(struct b43leg
+               meta->skb = skb;
+               meta->dmaaddr = map_descbuffer(ring, skb->data, skb->len, 1);
+               if (dma_mapping_error(meta->dmaaddr)) {
++                      ring->current_slot = old_top_slot;
++                      ring->used_slots = old_used_slots;
+                       err = -EIO;
+                       goto out_free_bounce;
+               }
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:19 2008
+Message-Id: <20080207204319.365579108@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:56 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Stephen Smalley <sds@tycho.nsa.gov>,
+ James Morris <jmorris@namei.org>
+Subject: [patch 38/45] selinux: fix labeling of /proc/net inodes
+Content-Disposition: inline; filename=selinux-fix-labeling-of-proc-net-inodes.patch
+Content-Length: 955
+Lines: 31
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Stephen Smalley <sds@tycho.nsa.gov>
+
+patch b1aa5301b9f88a4891061650c591fb8fe1c1d1da in mainline.
+
+The proc net rewrite had a side effect on selinux, leading it to mislabel
+the /proc/net inodes, thereby leading to incorrect denials.  Fix
+security_genfs_sid to ignore extra leading / characters in the path supplied
+by selinux_proc_get_sid since we now get "//net/..." rather than "/net/...".
+
+Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
+Signed-off-by: James Morris <jmorris@namei.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ security/selinux/ss/services.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/security/selinux/ss/services.c
++++ b/security/selinux/ss/services.c
+@@ -1744,6 +1744,9 @@ int security_genfs_sid(const char *fstyp
+       struct ocontext *c;
+       int rc = 0, cmp = 0;
++      while (path[0] == '/' && path[1] == '/')
++              path++;
++
+       POLICY_RDLOCK;
+       for (genfs = policydb.genfs; genfs; genfs = genfs->next) {
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:19 2008
+Message-Id: <20080207204319.591982809@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:57 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ linux-wireless@vger.kernel.org,
+ Bcm43xx-dev@lists.berlios.de,
+ Michael Buesch <mb@bu3sch.de>
+Subject: [patch 39/45] b43: Reject new firmware early
+Content-Disposition: inline; filename=b43-reject-new-firmware-early.patch
+Content-Length: 1394
+Lines: 41
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Michael Buesch <mb@bu3sch.de>
+
+(not in mainline, as it is not applicable.)
+
+We must reject new incompatible firmware early to avoid
+running into strange transmission failures.
+
+The current development tree supports newer firmware revisions.
+These revisions cause strange failures on the stable 2.6.24 kernel.
+Add a check to avoid confusing users a lot.
+
+Signed-off-by: Michael Buesch <mb@bu3sch.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/b43/main.c |   12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/drivers/net/wireless/b43/main.c
++++ b/drivers/net/wireless/b43/main.c
+@@ -1800,6 +1800,18 @@ static int b43_upload_microcode(struct b
+               err = -EOPNOTSUPP;
+               goto out;
+       }
++      if (fwrev > 351) {
++              b43err(dev->wl, "YOUR FIRMWARE IS TOO NEW. Please downgrade your "
++                     "firmware.\n");
++              b43err(dev->wl, "Use this firmware tarball: "
++                     "http://downloads.openwrt.org/sources/broadcom-wl-4.80.53.0.tar.bz2\n");
++              b43err(dev->wl, "Use this b43-fwcutter tarball: "
++                     "http://bu3sch.de/b43/fwcutter/b43-fwcutter-009.tar.bz2\n");
++              b43err(dev->wl, "Read, understand and _do_ what this message says, please.\n");
++              b43_write32(dev, B43_MMIO_MACCTL, 0);
++              err = -EOPNOTSUPP;
++              goto out;
++      }
+       b43dbg(dev->wl, "Loading firmware version %u.%u "
+              "(20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n",
+              fwrev, fwpatch,
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:20 2008
+Message-Id: <20080207204319.818725716@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:58 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Peter Zijlstra <a.p.zijlstra@chello.nl>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 40/45] sched: let +nice tasks have smaller impact
+Content-Disposition: inline; filename=sched-let-nice-tasks-have-smaller-impact.patch
+Content-Length: 1330
+Lines: 45
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Peter Zijlstra <a.p.zijlstra@chello.nl>
+
+patch ef9884e6f29bbe1075204f962a00f7533bf7e8f3 in mainline.
+
+Michel Dänzr has bisected an interactivity problem with
+plus-reniced tasks back to this commit:
+
+ 810e95ccd58d91369191aa4ecc9e6d4a10d8d0c8 is first bad commit
+ commit 810e95ccd58d91369191aa4ecc9e6d4a10d8d0c8
+ Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
+ Date:   Mon Oct 15 17:00:14 2007 +0200
+
+ sched: another wakeup_granularity fix
+
+      unit mis-match: wakeup_gran was used against a vruntime
+
+fix this by assymetrically scaling the vtime of positive reniced
+tasks.
+
+Bisected-by: Michel Dänzer <michel@tungstengraphics.com>
+Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/sched_fair.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/kernel/sched_fair.c
++++ b/kernel/sched_fair.c
+@@ -867,7 +867,11 @@ static void check_preempt_wakeup(struct 
+       }
+       gran = sysctl_sched_wakeup_granularity;
+-      if (unlikely(se->load.weight != NICE_0_LOAD))
++      /*
++       * More easily preempt - nice tasks, while not making
++       * it harder for + nice tasks.
++       */
++      if (unlikely(se->load.weight > NICE_0_LOAD))
+               gran = calc_delta_fair(gran, &se->load);
+       if (pse->vruntime + gran < se->vruntime)
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:20 2008
+Message-Id: <20080207204320.045356670@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:59 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 41/45] sched: fix high wake up latencies with FAIR_USER_SCHED
+Content-Disposition: inline; filename=sched-fix-high-wake-up-latencies-with-fair_user_sched.patch
+Content-Length: 1350
+Lines: 42
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
+
+patch 296825cbe14d4c95ee9c41ca5824f7487bfb4d9d in mainline.
+
+The reason why we are getting better wakeup latencies for
+!FAIR_USER_SCHED is because of this snippet of code in place_entity():
+
+       if (!initial) {
+               /* sleeps upto a single latency don't count. */
+               if (sched_feat(NEW_FAIR_SLEEPERS) && entity_is_task(se))
+                                                    ^^^^^^^^^^^^^^^^^^
+                       vruntime -= sysctl_sched_latency;
+
+               /* ensure we never gain time by being placed backwards. */
+               vruntime = max_vruntime(se->vruntime, vruntime);
+       }
+
+NEW_FAIR_SLEEPERS feature gives credit for sleeping only to tasks and
+not group-level entities. With the patch attached, I could see that
+wakeup latencies with FAIR_USER_SCHED are restored to the same level as
+!FAIR_USER_SCHED.
+
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/sched_fair.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/sched_fair.c
++++ b/kernel/sched_fair.c
+@@ -511,7 +511,7 @@ place_entity(struct cfs_rq *cfs_rq, stru
+       if (!initial) {
+               /* sleeps upto a single latency don't count. */
+-              if (sched_feat(NEW_FAIR_SLEEPERS) && entity_is_task(se))
++              if (sched_feat(NEW_FAIR_SLEEPERS))
+                       vruntime -= sysctl_sched_latency;
+               /* ensure we never gain time by being placed backwards. */
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:20 2008
+Message-Id: <20080207204320.271966048@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:42:00 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org,
+ Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Nick Piggin <npiggin@suse.de>,
+ Ingo Molnar <mingo@elte.hu>
+Subject: [patch 42/45] fix writev regression: pan hanging unkillable and un-straceable
+Content-Disposition: inline; filename=fix-writev-regression-pan-hanging-unkillable-and-un-straceable.patch
+Content-Length: 1989
+Lines: 63
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Nick Piggin <nickpiggin@yahoo.com.au>
+
+patch 124d3b7041f9a0ca7c43a6293e1cae4576c32fd5 in mainline.
+
+Frederik Himpe reported an unkillable and un-straceable pan process.
+
+Zero length iovecs can go into an infinite loop in writev, because the 
+iovec iterator does not always advance over them.
+
+The sequence required to trigger this is not trivial. I think it 
+requires that a zero-length iovec be followed by a non-zero-length iovec 
+which causes a pagefault in the atomic usercopy. This causes the writev 
+code to drop back into single-segment copy mode, which then tries to 
+copy the 0 bytes of the zero-length iovec; a zero length copy looks like 
+a failure though, so it loops.
+
+Put a test into iov_iter_advance to catch zero-length iovecs. We could 
+just put the test in the fallback path, but I feel it is more robust to 
+skip over zero-length iovecs throughout the code (iovec iterator may be 
+used in filesystems too, so it should be robust).
+
+Signed-off-by: Nick Piggin <npiggin@suse.de>
+Signed-off-by: Ingo Molnar <mingo@elte.hu>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ mm/filemap.c |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/mm/filemap.c
++++ b/mm/filemap.c
+@@ -1733,7 +1733,11 @@ static void __iov_iter_advance_iov(struc
+               const struct iovec *iov = i->iov;
+               size_t base = i->iov_offset;
+-              while (bytes) {
++              /*
++               * The !iov->iov_len check ensures we skip over unlikely
++               * zero-length segments.
++               */
++              while (bytes || !iov->iov_len) {
+                       int copy = min(bytes, iov->iov_len - base);
+                       bytes -= copy;
+@@ -2251,6 +2255,7 @@ again:
+               cond_resched();
++              iov_iter_advance(i, copied);
+               if (unlikely(copied == 0)) {
+                       /*
+                        * If we were unable to copy any data at all, we must
+@@ -2264,7 +2269,6 @@ again:
+                                               iov_iter_single_seg_count(i));
+                       goto again;
+               }
+-              iov_iter_advance(i, copied);
+               pos += copied;
+               written += copied;
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:20 2008
+Message-Id: <20080207204320.498189265@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:42:01 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Thomas Gleixner <tglx@linutronix.de>
+Subject: [patch 43/45] x86: replace LOCK_PREFIX in futex.h
+Content-Disposition: inline; filename=x86-replace-lock_prefix-in-futex.h.patch
+Content-Length: 2517
+Lines: 84
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Thomas Gleixner <tglx@linutronix.de>
+
+The exception fixup for the futex macros __futex_atomic_op1/2 and
+futex_atomic_cmpxchg_inatomic() is missing an entry when the lock
+prefix is replaced by a NOP via SMP alternatives.
+
+Chuck Ebert tracked this down from the information provided in:
+https://bugzilla.redhat.com/show_bug.cgi?id=429412
+
+A possible solution would be to add another fixup after the
+LOCK_PREFIX, so both the LOCK and NOP case have their own entry in the
+exception table, but it's not really worth the trouble.
+
+Simply replace LOCK_PREFIX with lock and keep those untouched by SMP
+alternatives.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ include/asm-x86/futex_32.h |    6 +++---
+ include/asm-x86/futex_64.h |    6 +++---
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+--- a/include/asm-x86/futex_32.h
++++ b/include/asm-x86/futex_32.h
+@@ -28,7 +28,7 @@
+ "1:   movl    %2, %0\n\
+       movl    %0, %3\n"                                       \
+       insn "\n"                                               \
+-"2:   " LOCK_PREFIX "cmpxchgl %3, %2\n\
++"2:   lock cmpxchgl %3, %2\n\
+       jnz     1b\n\
+ 3:    .section .fixup,\"ax\"\n\
+ 4:    mov     %5, %1\n\
+@@ -68,7 +68,7 @@ futex_atomic_op_inuser (int encoded_op, 
+ #endif
+               switch (op) {
+               case FUTEX_OP_ADD:
+-                      __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret,
++                      __futex_atomic_op1("lock xaddl %0, %2", ret,
+                                          oldval, uaddr, oparg);
+                       break;
+               case FUTEX_OP_OR:
+@@ -111,7 +111,7 @@ futex_atomic_cmpxchg_inatomic(int __user
+               return -EFAULT;
+       __asm__ __volatile__(
+-              "1:     " LOCK_PREFIX "cmpxchgl %3, %1          \n"
++              "1:     lock cmpxchgl %3, %1                    \n"
+               "2:     .section .fixup, \"ax\"                 \n"
+               "3:     mov     %2, %0                          \n"
+--- a/include/asm-x86/futex_64.h
++++ b/include/asm-x86/futex_64.h
+@@ -27,7 +27,7 @@
+ "1:   movl    %2, %0\n\
+       movl    %0, %3\n"                                       \
+       insn "\n"                                               \
+-"2:   " LOCK_PREFIX "cmpxchgl %3, %2\n\
++"2:   "lock cmpxchgl %3, %2\n\
+       jnz     1b\n\
+ 3:    .section .fixup,\"ax\"\n\
+ 4:    mov     %5, %1\n\
+@@ -62,7 +62,7 @@ futex_atomic_op_inuser (int encoded_op, 
+               __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
+               break;
+       case FUTEX_OP_ADD:
+-              __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
++              __futex_atomic_op1("lock xaddl %0, %2", ret, oldval,
+                                  uaddr, oparg);
+               break;
+       case FUTEX_OP_OR:
+@@ -101,7 +101,7 @@ futex_atomic_cmpxchg_inatomic(int __user
+               return -EFAULT;
+       __asm__ __volatile__(
+-              "1:     " LOCK_PREFIX "cmpxchgl %3, %1          \n"
++              "1:     lock cmpxchgl %3, %1                    \n"
+               "2:     .section .fixup, \"ax\"                 \n"
+               "3:     mov     %2, %0                          \n"
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:20 2008
+Message-Id: <20080207204320.723170191@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:42:02 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Michael E Brown <michael_e_brown@dell.com>
+Subject: [patch 44/45] Driver core: Revert "Fix Firmware class name collision"
+Content-Disposition: inline; filename=driver-core-revert-fix-firmware-class-name-collision.patch
+Content-Length: 1153
+Lines: 35
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Michael E Brown <Michael_E_Brown@dell.com>
+
+patch 7d640c4a5b36c4733460065db1554da924044511 in mainline.
+
+This reverts commit 109f0e93b6b728f03c1eb4af02bc25d71b646c59.
+
+The original patch breaks BIOS updates on all Dell machines. The path to
+the firmware file for the dell_rbu driver changes, which breaks all of
+the userspace tools which rely on it.
+
+Note that this patch re-introduces a problem with i2c name collision
+that was previously fixed by this patch.
+
+Signed-off-by: Michael E Brown <michael_e_brown@dell.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/base/firmware_class.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/base/firmware_class.c
++++ b/drivers/base/firmware_class.c
+@@ -292,7 +292,8 @@ firmware_class_timeout(u_long data)
+ static inline void fw_setup_device_id(struct device *f_dev, struct device *dev)
+ {
+-      snprintf(f_dev->bus_id, BUS_ID_SIZE, "firmware-%s", dev->bus_id);
++      /* XXX warning we should watch out for name collisions */
++      strlcpy(f_dev->bus_id, dev->bus_id, BUS_ID_SIZE);
+ }
+ static int fw_register_device(struct device **dev_p, const char *fw_name,
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:21 2008
+Message-Id: <20080207204320.947564964@mini.kroah.org>
+References: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:42:03 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk,
+ Dave Airlie <airlied@linux.ie>
+Subject: [patch 45/45] drm: the drm really should call pci_set_master..
+Content-Disposition: inline; filename=drm-the-drm-really-should-call-pci_set_master.patch
+Content-Length: 695
+Lines: 27
+
+2.6.24-stable review patch.  If anyone has any objections, please let us know.
+
+------------------
+From: Dave Airlie <airlied@linux.ie>
+
+
+(submitted upstream as 19a8f59ab8ceee751ea720085098355d53f727d6)
+
+perhaps bonghits could turn on my bus-mastering because the drm
+certainly never bothered doing it before.
+
+Signed-off-by: Dave Airlie <airlied@linux.ie>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/char/drm/drm_stub.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/char/drm/drm_stub.c
++++ b/drivers/char/drm/drm_stub.c
+@@ -218,6 +218,7 @@ int drm_get_dev(struct pci_dev *pdev, co
+       if (ret)
+               goto err_g1;
++      pci_set_master(pdev);
+       if ((ret = drm_fill_in_dev(dev, pdev, ent, driver))) {
+               printk(KERN_ERR "DRM: Fill_in_dev failed.\n");
+               goto err_g2;
+
+-- 
+
+From gregkh@mini.kroah.org Thu Feb  7 12:43:09 2008
+Message-Id: <20080207204118.202098927@mini.kroah.org>
+User-Agent: quilt/0.46-1
+Date: Thu, 07 Feb 2008 12:41:18 -0800
+From: Greg KH <gregkh@suse.de>
+To: linux-kernel@vger.kernel.org,
+ stable@kernel.org
+Cc: Justin Forbes <jmforbes@linuxtx.org>,
+ Zwane Mwaikambo <zwane@arm.linux.org.uk>,
+ Theodore Ts'o <tytso@mit.edu>,
+ Randy Dunlap <rdunlap@xenotime.net>,
+ Dave Jones <davej@redhat.com>,
+ Chuck Wolber <chuckw@quantumlinux.com>,
+ Chris Wedgwood <reviews@ml.cw.f00f.org>,
+ Michael Krufky <mkrufky@linuxtv.org>,
+ Chuck Ebbert <cebbert@redhat.com>,
+ Domenico Andreoli <cavokz@gmail.com>,
+ torvalds@linux-foundation.org,
+ akpm@linux-foundation.org,
+ alan@lxorguk.ukuu.org.uk
+Subject: [patch 00/45] 2.6.24-stable review
+Content-Length: 735
+Lines: 17
+
+This is the start of the stable review cycle for the 2.6.24.1 release.
+There are 45 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 Friday, Feb 8 2008, 21:00:00 UTC@.
+Anything received after that time might be too late.
+
+thanks,
+
+the -stable release team
+
similarity index 100%
rename from queue-2.6.24/series
rename to review-2.6.24/series