--- /dev/null
+From 55d6a3cd0cc85ed90c39cf32e16f622bd003117b Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes@sipsolutions.net>
+Date: Tue, 23 Sep 2008 19:18:43 +0200
+Subject: iwlagn: downgrade BUG_ON in interrupt
+
+From: Johannes Berg <johannes@sipsolutions.net>
+
+commit 55d6a3cd0cc85ed90c39cf32e16f622bd003117b upstream.
+
+This BUG_ON really shouldn't trigger, but if it does, as on my machine,
+it leaves you wondering what happened because you won't see it. Let's
+instead leak a bit of state and memory and at least make it possible to
+report it to the kerneloops project to track it.
+
+Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Cc: François Valenduc <francois.valenduc@tvcablenet.be>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/net/wireless/iwlwifi/iwl-tx.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
++++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
+@@ -1192,10 +1192,9 @@ void iwl_tx_cmd_complete(struct iwl_priv
+ /* If a Tx command is being handled and it isn't in the actual
+ * command queue then there a command routing bug has been introduced
+ * in the queue management code. */
+- if (txq_id != IWL_CMD_QUEUE_NUM)
+- IWL_ERROR("Error wrong command queue %d command id 0x%X\n",
+- txq_id, pkt->hdr.cmd);
+- BUG_ON(txq_id != IWL_CMD_QUEUE_NUM);
++ if (WARN(txq_id != IWL_CMD_QUEUE_NUM,
++ "wrong command queue %d, command id 0x%X\n", txq_id, pkt->hdr.cmd))
++ return;
+
+ cmd_index = get_cmd_index(&priv->txq[IWL_CMD_QUEUE_NUM].q, index, huge);
+ cmd = priv->txq[IWL_CMD_QUEUE_NUM].cmd[cmd_index];
--- /dev/null
+From af4d3643864ee5fcba0c97d77a424fa0b0346f8e Mon Sep 17 00:00:00 2001
+From: Guillaume Knispel <gknispel@proformatique.com>
+Date: Tue, 9 Dec 2008 15:28:34 +0100
+Subject: powerpc: Fix corruption error in rh_alloc_fixed()
+
+From: Guillaume Knispel <gknispel@proformatique.com>
+
+commit af4d3643864ee5fcba0c97d77a424fa0b0346f8e upstream.
+
+There is an error in rh_alloc_fixed() of the Remote Heap code:
+If there is at least one free block blk won't be NULL at the end of the
+search loop, so -ENOMEM won't be returned and the else branch of
+"if (bs == s || be == e)" will be taken, corrupting the management
+structures.
+
+Signed-off-by: Guillaume Knispel <gknispel@proformatique.com>
+Acked-by: Timur Tabi <timur@freescale.com>
+Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/powerpc/lib/rheap.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/powerpc/lib/rheap.c
++++ b/arch/powerpc/lib/rheap.c
+@@ -556,6 +556,7 @@ unsigned long rh_alloc_fixed(rh_info_t *
+ be = blk->start + blk->size;
+ if (s >= bs && e <= be)
+ break;
++ blk = NULL;
+ }
+
+ if (blk == NULL)
--- /dev/null
+usb-gadget-fix-rndis-working-at-high-speed.patch
+usb-storage-update-unusual_devs-entry-for-nokia-5310.patch
+usb-storage-unusual_devs.h-nokia-3109c-addition.patch
+usb-unusual-devs-patch-for-nokia-3500c.patch
+powerpc-fix-corruption-error-in-rh_alloc_fixed.patch
+iwlagn-downgrade-bug_on-in-interrupt.patch
--- /dev/null
+From 7c12414955e9b44a3e33d54e578bf008caa4475d Mon Sep 17 00:00:00 2001
+From: David Brownell <dbrownell@users.sourceforge.net>
+Date: Mon, 24 Nov 2008 23:11:03 -0800
+Subject: USB: gadget: fix rndis working at high speed
+
+From: David Brownell <dbrownell@users.sourceforge.net>
+
+commit 7c12414955e9b44a3e33d54e578bf008caa4475d upstream.
+
+Fix a bug specific to highspeed mode in the recently updated RNDIS
+support: it wasn't setting up the high speed notification endpoint,
+which prevented high speed RNDIS links from working.
+
+Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
+Tested-by: Anand Gadiyar <gadiyar@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/gadget/f_rndis.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/usb/gadget/f_rndis.c
++++ b/drivers/usb/gadget/f_rndis.c
+@@ -651,6 +651,8 @@ rndis_bind(struct usb_configuration *c,
+ fs_in_desc.bEndpointAddress;
+ hs_out_desc.bEndpointAddress =
+ fs_out_desc.bEndpointAddress;
++ hs_notify_desc.bEndpointAddress =
++ fs_notify_desc.bEndpointAddress;
+
+ /* copy descriptors, and track endpoint copies */
+ f->hs_descriptors = usb_copy_descriptors(eth_hs_function);
+@@ -662,6 +664,8 @@ rndis_bind(struct usb_configuration *c,
+ f->hs_descriptors, &hs_in_desc);
+ rndis->hs.out = usb_find_endpoint(eth_hs_function,
+ f->hs_descriptors, &hs_out_desc);
++ rndis->hs.notify = usb_find_endpoint(eth_hs_function,
++ f->hs_descriptors, &hs_notify_desc);
+ }
+
+ rndis->port.open = rndis_open;
--- /dev/null
+From 1393fce7189427bdb4d6115ca5566ca8d0fc86f3 Mon Sep 17 00:00:00 2001
+From: CSÉCSY László <boobaa@frugalware.org>
+Date: Tue, 9 Dec 2008 23:39:14 +0100
+Subject: USB: storage: unusual_devs.h: Nokia 3109c addition
+
+From: CSÉCSY László <boobaa@frugalware.org>
+
+commit 1393fce7189427bdb4d6115ca5566ca8d0fc86f3 upstream.
+
+2.6.26(.x, cannot remember) could handle the microSD card in my Nokia
+3109c attached via USB as mass storage, 2.6.27(.x, up to and included
+2.6.27.8) cannot. Please find the attached patch which fixes this
+regression, and a copy of /proc/bus/usb/devices with my phone plugged in
+running with this patch on Frugalware.
+
+T: Bus=02 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
+D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
+P: Vendor=0421 ProdID=0063 Rev= 6.01
+S: Manufacturer=Nokia
+S: Product=Nokia 3109c
+S: SerialNumber=359561013742570
+C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
+I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
+E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+
+From: CSÉCSY László <boobaa@frugalware.org>
+Cc: Phil Dibowitz <phil@ipom.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/storage/unusual_devs.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -253,6 +253,13 @@ UNUSUAL_DEV( 0x0421, 0x04fa, 0x0550, 0x
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
+ US_FL_FIX_CAPACITY ),
+
++/* Reported by CSECSY Laszlo <boobaa@frugalware.org> */
++UNUSUAL_DEV( 0x0421, 0x0063, 0x0001, 0x0601,
++ "Nokia",
++ "Nokia 3109c",
++ US_SC_DEVICE, US_PR_DEVICE, NULL,
++ US_FL_FIX_CAPACITY ),
++
+ /* Patch for Nokia 5310 capacity */
+ UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591,
+ "Nokia",
--- /dev/null
+From a4b188095912eee83d065f000dfe06f25919750b Mon Sep 17 00:00:00 2001
+From: Alan Stern <stern@rowland.harvard.edu>
+Date: Mon, 1 Dec 2008 10:23:43 -0500
+Subject: usb-storage: update unusual_devs entry for Nokia 5310
+
+From: Alan Stern <stern@rowland.harvard.edu>
+
+commit a4b188095912eee83d065f000dfe06f25919750b upstream.
+
+This patch (as1179) updates the unusual_devs entry for Nokia's 5310
+phone to include a more recent firmware revision.
+
+This fixes Bugzilla #12099.
+
+Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
+Tested-by: Robson Roberto Souza Peixoto <robsonpeixoto@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/storage/unusual_devs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -168,7 +168,7 @@ UNUSUAL_DEV( 0x0421, 0x005d, 0x0001, 0x
+ US_FL_FIX_CAPACITY ),
+
+ /* Patch for Nokia 5310 capacity */
+-UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0591,
++UNUSUAL_DEV( 0x0421, 0x006a, 0x0000, 0x0701,
+ "Nokia",
+ "5310",
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
--- /dev/null
+From 48e1a540e1e9ea62a2b3088a69ecf934f3172b14 Mon Sep 17 00:00:00 2001
+From: Ozan Sener <themgzzy@gmail.com>
+Date: Mon, 8 Dec 2008 19:15:45 +0200
+Subject: USB: Unusual devs patch for Nokia 3500c
+
+From: Ozan Sener <themgzzy@gmail.com>
+
+commit 48e1a540e1e9ea62a2b3088a69ecf934f3172b14 upstream.
+
+T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
+D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
+P: Vendor=0421 ProdID=0060 Rev= 5.51
+S: Manufacturer=Nokia
+S: Product=Nokia 3500c
+S: SerialNumber=357687010280751
+C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
+I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
+E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+
+From: Ozan Sener <themgzzy@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/storage/unusual_devs.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/usb/storage/unusual_devs.h
++++ b/drivers/usb/storage/unusual_devs.h
+@@ -253,6 +253,13 @@ UNUSUAL_DEV( 0x0421, 0x04fa, 0x0550, 0x
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
+ US_FL_FIX_CAPACITY ),
+
++/* Reported by Ozan Sener <themgzzy@gmail.com> */
++UNUSUAL_DEV( 0x0421, 0x0060, 0x0551, 0x0551,
++ "Nokia",
++ "3500c",
++ US_SC_DEVICE, US_PR_DEVICE, NULL,
++ US_FL_FIX_CAPACITY ),
++
+ /* Reported by CSECSY Laszlo <boobaa@frugalware.org> */
+ UNUSUAL_DEV( 0x0421, 0x0063, 0x0001, 0x0601,
+ "Nokia",