--- /dev/null
+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
+