summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-12-05 13:40:27 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-12-05 13:40:27 -0800
commitc1b84d68fe643d503fcb8d558923178dec43fdf1 (patch)
tree5dd22203ee05b9117076d49043da908091dc4b53
parentc8424c9b10b5b4f2716cc9d39785f24c59bc8854 (diff)
downloadlongterm-queue-2.6.32-c1b84d68fe643d503fcb8d558923178dec43fdf1.tar.gz
32 patches
added patches: cifs-fix-cifs-stable-patch-cifs-fix-oplock-break-handling-try-2.patch.patch scsi-scsi_lib-fix-potential-null-dereference.patch scsi-silencing-killing-requests-for-dead-queue.patch staging-comedi-fix-oops-for-usb-daq-devices.patch staging-comedi-fix-signal-handling-in-read-and-write.patch staging-usbip-bugfix-for-deadlock.patch usb-ftdi_sio-add-pid-for-propox-ispcable-iii.patch usb-option-add-simcom-sim5218.patch usb-usb-storage-unusual_devs-entry-for-kingston-dt-101-g2.patch usb-whci-hcd-fix-endian-conversion-in-qset_clear.patch
-rw-r--r--queue-2.6.32/cifs-fix-cifs-stable-patch-cifs-fix-oplock-break-handling-try-2.patch.patch44
-rw-r--r--queue-2.6.32/scsi-scsi_lib-fix-potential-null-dereference.patch49
-rw-r--r--queue-2.6.32/scsi-silencing-killing-requests-for-dead-queue.patch44
-rw-r--r--queue-2.6.32/series10
-rw-r--r--queue-2.6.32/staging-comedi-fix-oops-for-usb-daq-devices.patch147
-rw-r--r--queue-2.6.32/staging-comedi-fix-signal-handling-in-read-and-write.patch48
-rw-r--r--queue-2.6.32/staging-usbip-bugfix-for-deadlock.patch63
-rw-r--r--queue-2.6.32/usb-ftdi_sio-add-pid-for-propox-ispcable-iii.patch40
-rw-r--r--queue-2.6.32/usb-option-add-simcom-sim5218.patch28
-rw-r--r--queue-2.6.32/usb-usb-storage-unusual_devs-entry-for-kingston-dt-101-g2.patch35
-rw-r--r--queue-2.6.32/usb-whci-hcd-fix-endian-conversion-in-qset_clear.patch30
11 files changed, 538 insertions, 0 deletions
diff --git a/queue-2.6.32/cifs-fix-cifs-stable-patch-cifs-fix-oplock-break-handling-try-2.patch.patch b/queue-2.6.32/cifs-fix-cifs-stable-patch-cifs-fix-oplock-break-handling-try-2.patch.patch
new file mode 100644
index 0000000..75aa3b4
--- /dev/null
+++ b/queue-2.6.32/cifs-fix-cifs-stable-patch-cifs-fix-oplock-break-handling-try-2.patch.patch
@@ -0,0 +1,44 @@
+From sjayaraman@suse.com Mon Dec 5 13:33:36 2011
+From: Suresh Jayaraman <sjayaraman@suse.com>
+Date: Fri, 02 Dec 2011 16:24:56 +0530
+Subject: cifs: fix cifs stable patch cifs-fix-oplock-break-handling-try-2.patch
+To: stable@kernel.org, Greg KH <gregkh@suse.de>
+Cc: Pavel Shilovsky <piastryyy@gmail.com>, Steve French <smfrench@gmail.com>, linux-cifs <linux-cifs@vger.kernel.org>
+Message-ID: <4ED8AE80.7030008@suse.com>
+
+From: Suresh Jayaraman <sjayaraman@suse.com>
+
+The stable release 2.6.32.32 added the upstream commit
+12fed00de963433128b5366a21a55808fab2f756. However, one of the hunks of
+the original patch seems missing from the stable backport which can be
+found here:
+ http://permalink.gmane.org/gmane.linux.kernel.stable/5676
+
+This hunk corresponds to the change in is_valid_oplock_break() at
+fs/cifs/misc.c.
+
+This patch backports the missing hunk and is against
+linux-2.6.32.y stable kernel.
+
+
+Cc: Steve French <sfrench@us.ibm.com>
+Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
+Signed-off-by: Suresh Jayaraman <sjayaraman@suse.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ fs/cifs/misc.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/fs/cifs/misc.c
++++ b/fs/cifs/misc.c
+@@ -584,6 +584,9 @@ is_valid_oplock_break(struct smb_hdr *bu
+ pCifsInode->clientCanCacheAll = false;
+ if (pSMB->OplockLevel == 0)
+ pCifsInode->clientCanCacheRead = false;
++ else if (pSMB->OplockLevel)
++ pCifsInode->clientCanCacheRead = true;
++
+ rc = slow_work_enqueue(&netfile->oplock_break);
+ if (rc) {
+ cERROR(1, ("failed to enqueue oplock "
diff --git a/queue-2.6.32/scsi-scsi_lib-fix-potential-null-dereference.patch b/queue-2.6.32/scsi-scsi_lib-fix-potential-null-dereference.patch
new file mode 100644
index 0000000..e832be3
--- /dev/null
+++ b/queue-2.6.32/scsi-scsi_lib-fix-potential-null-dereference.patch
@@ -0,0 +1,49 @@
+From 03b147083a2f9a2a3fbbd2505fa88ffa3c6ab194 Mon Sep 17 00:00:00 2001
+From: Jiri Slaby <jirislaby@gmail.com>
+Date: Wed, 23 Sep 2009 16:15:35 +0200
+Subject: SCSI: scsi_lib: fix potential NULL dereference
+
+From: Jiri Slaby <jirislaby@gmail.com>
+
+commit 03b147083a2f9a2a3fbbd2505fa88ffa3c6ab194 upstream.
+
+Stanse found a potential NULL dereference in scsi_kill_request.
+
+Instead of triggering BUG() in 'if (unlikely(cmd == NULL))' branch,
+the kernel will Oops earlier on cmd dereference.
+
+Move the dereferences after the if.
+
+Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
+Signed-off-by: James Bottomley <James.Bottomley@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/scsi_lib.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+--- a/drivers/scsi/scsi_lib.c
++++ b/drivers/scsi/scsi_lib.c
+@@ -1370,9 +1370,9 @@ static int scsi_lld_busy(struct request_
+ static void scsi_kill_request(struct request *req, struct request_queue *q)
+ {
+ struct scsi_cmnd *cmd = req->special;
+- struct scsi_device *sdev = cmd->device;
+- struct scsi_target *starget = scsi_target(sdev);
+- struct Scsi_Host *shost = sdev->host;
++ struct scsi_device *sdev;
++ struct scsi_target *starget;
++ struct Scsi_Host *shost;
+
+ blk_start_request(req);
+
+@@ -1382,6 +1382,9 @@ static void scsi_kill_request(struct req
+ BUG();
+ }
+
++ sdev = cmd->device;
++ starget = scsi_target(sdev);
++ shost = sdev->host;
+ scsi_init_cmd_errh(cmd);
+ cmd->result = DID_NO_CONNECT << 16;
+ atomic_inc(&cmd->device->iorequest_cnt);
diff --git a/queue-2.6.32/scsi-silencing-killing-requests-for-dead-queue.patch b/queue-2.6.32/scsi-silencing-killing-requests-for-dead-queue.patch
new file mode 100644
index 0000000..a7144f4
--- /dev/null
+++ b/queue-2.6.32/scsi-silencing-killing-requests-for-dead-queue.patch
@@ -0,0 +1,44 @@
+From 745718132c3c7cac98a622b610e239dcd5217f71 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare@suse.de>
+Date: Wed, 9 Nov 2011 08:39:24 +0100
+Subject: SCSI: Silencing 'killing requests for dead queue'
+
+From: Hannes Reinecke <hare@suse.de>
+
+commit 745718132c3c7cac98a622b610e239dcd5217f71 upstream.
+
+When we tear down a device we try to flush all outstanding
+commands in scsi_free_queue(). However the check in
+scsi_request_fn() is imperfect as it only signals that
+we _might start_ aborting commands, not that we've actually
+aborted some.
+So move the printk inside the scsi_kill_request function,
+this will also give us a hint about which commands are aborted.
+
+Signed-off-by: Hannes Reinecke <hare@suse.de>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/scsi_lib.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/scsi/scsi_lib.c
++++ b/drivers/scsi/scsi_lib.c
+@@ -1382,6 +1382,8 @@ static void scsi_kill_request(struct req
+ BUG();
+ }
+
++ scmd_printk(KERN_INFO, cmd, "killing request\n");
++
+ sdev = cmd->device;
+ starget = scsi_target(sdev);
+ shost = sdev->host;
+@@ -1468,7 +1470,6 @@ static void scsi_request_fn(struct reque
+ struct request *req;
+
+ if (!sdev) {
+- printk("scsi: killing requests for dead queue\n");
+ while ((req = blk_peek_request(q)) != NULL)
+ scsi_kill_request(req, q);
+ return;
diff --git a/queue-2.6.32/series b/queue-2.6.32/series
index 5b881d4..de507db 100644
--- a/queue-2.6.32/series
+++ b/queue-2.6.32/series
@@ -9,3 +9,13 @@ p54spi-add-missing-spin_lock_init.patch
p54spi-fix-workqueue-deadlock.patch
nl80211-fix-mac-address-validation.patch
gro-reset-vlan_tci-on-reuse.patch
+staging-usbip-bugfix-for-deadlock.patch
+staging-comedi-fix-oops-for-usb-daq-devices.patch
+staging-comedi-fix-signal-handling-in-read-and-write.patch
+usb-whci-hcd-fix-endian-conversion-in-qset_clear.patch
+usb-ftdi_sio-add-pid-for-propox-ispcable-iii.patch
+usb-option-add-simcom-sim5218.patch
+usb-usb-storage-unusual_devs-entry-for-kingston-dt-101-g2.patch
+scsi-scsi_lib-fix-potential-null-dereference.patch
+scsi-silencing-killing-requests-for-dead-queue.patch
+cifs-fix-cifs-stable-patch-cifs-fix-oplock-break-handling-try-2.patch.patch
diff --git a/queue-2.6.32/staging-comedi-fix-oops-for-usb-daq-devices.patch b/queue-2.6.32/staging-comedi-fix-oops-for-usb-daq-devices.patch
new file mode 100644
index 0000000..3357d88
--- /dev/null
+++ b/queue-2.6.32/staging-comedi-fix-oops-for-usb-daq-devices.patch
@@ -0,0 +1,147 @@
+From 3ffab428f40849ed5f21bcfd7285bdef7902f9ca Mon Sep 17 00:00:00 2001
+From: Bernd Porr <berndporr@f2s.com>
+Date: Tue, 8 Nov 2011 21:23:03 +0000
+Subject: staging: comedi: fix oops for USB DAQ devices.
+
+From: Bernd Porr <berndporr@f2s.com>
+
+commit 3ffab428f40849ed5f21bcfd7285bdef7902f9ca upstream.
+
+This fixes kernel oops when an USB DAQ device is plugged out while it's
+communicating with the userspace software.
+
+Signed-off-by: Bernd Porr <berndporr@f2s.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/comedi/comedi_fops.c | 73 +++++++++++++++++++++++++----------
+ 1 file changed, 54 insertions(+), 19 deletions(-)
+
+--- a/drivers/staging/comedi/comedi_fops.c
++++ b/drivers/staging/comedi/comedi_fops.c
+@@ -1396,9 +1396,6 @@ static struct vm_operations_struct comed
+ static int comedi_mmap(struct file *file, struct vm_area_struct *vma)
+ {
+ const unsigned minor = iminor(file->f_dentry->d_inode);
+- struct comedi_device_file_info *dev_file_info =
+- comedi_get_device_file_info(minor);
+- struct comedi_device *dev = dev_file_info->device;
+ struct comedi_async *async = NULL;
+ unsigned long start = vma->vm_start;
+ unsigned long size;
+@@ -1406,6 +1403,15 @@ static int comedi_mmap(struct file *file
+ int i;
+ int retval;
+ struct comedi_subdevice *s;
++ struct comedi_device_file_info *dev_file_info;
++ struct comedi_device *dev;
++
++ dev_file_info = comedi_get_device_file_info(minor);
++ if (dev_file_info == NULL)
++ return -ENODEV;
++ dev = dev_file_info->device;
++ if (dev == NULL)
++ return -ENODEV;
+
+ mutex_lock(&dev->mutex);
+ if (!dev->attached) {
+@@ -1472,11 +1478,17 @@ static unsigned int comedi_poll(struct f
+ {
+ unsigned int mask = 0;
+ const unsigned minor = iminor(file->f_dentry->d_inode);
+- struct comedi_device_file_info *dev_file_info =
+- comedi_get_device_file_info(minor);
+- struct comedi_device *dev = dev_file_info->device;
+ struct comedi_subdevice *read_subdev;
+ struct comedi_subdevice *write_subdev;
++ struct comedi_device_file_info *dev_file_info;
++ struct comedi_device *dev;
++ dev_file_info = comedi_get_device_file_info(minor);
++
++ if (dev_file_info == NULL)
++ return -ENODEV;
++ dev = dev_file_info->device;
++ if (dev == NULL)
++ return -ENODEV;
+
+ mutex_lock(&dev->mutex);
+ if (!dev->attached) {
+@@ -1522,9 +1534,15 @@ static ssize_t comedi_write(struct file
+ int n, m, count = 0, retval = 0;
+ DECLARE_WAITQUEUE(wait, current);
+ const unsigned minor = iminor(file->f_dentry->d_inode);
+- struct comedi_device_file_info *dev_file_info =
+- comedi_get_device_file_info(minor);
+- struct comedi_device *dev = dev_file_info->device;
++ struct comedi_device_file_info *dev_file_info;
++ struct comedi_device *dev;
++ dev_file_info = comedi_get_device_file_info(minor);
++
++ if (dev_file_info == NULL)
++ return -ENODEV;
++ dev = dev_file_info->device;
++ if (dev == NULL)
++ return -ENODEV;
+
+ if (!dev->attached) {
+ DPRINTK("no driver configured on comedi%i\n", dev->minor);
+@@ -1624,9 +1642,15 @@ static ssize_t comedi_read(struct file *
+ int n, m, count = 0, retval = 0;
+ DECLARE_WAITQUEUE(wait, current);
+ const unsigned minor = iminor(file->f_dentry->d_inode);
+- struct comedi_device_file_info *dev_file_info =
+- comedi_get_device_file_info(minor);
+- struct comedi_device *dev = dev_file_info->device;
++ struct comedi_device_file_info *dev_file_info;
++ struct comedi_device *dev;
++ dev_file_info = comedi_get_device_file_info(minor);
++
++ if (dev_file_info == NULL)
++ return -ENODEV;
++ dev = dev_file_info->device;
++ if (dev == NULL)
++ return -ENODEV;
+
+ if (!dev->attached) {
+ DPRINTK("no driver configured on comedi%i\n", dev->minor);
+@@ -1819,11 +1843,17 @@ ok:
+ static int comedi_close(struct inode *inode, struct file *file)
+ {
+ const unsigned minor = iminor(inode);
+- struct comedi_device_file_info *dev_file_info =
+- comedi_get_device_file_info(minor);
+- struct comedi_device *dev = dev_file_info->device;
+ struct comedi_subdevice *s = NULL;
+ int i;
++ struct comedi_device_file_info *dev_file_info;
++ struct comedi_device *dev;
++ dev_file_info = comedi_get_device_file_info(minor);
++
++ if (dev_file_info == NULL)
++ return -ENODEV;
++ dev = dev_file_info->device;
++ if (dev == NULL)
++ return -ENODEV;
+
+ mutex_lock(&dev->mutex);
+
+@@ -1857,10 +1887,15 @@ static int comedi_close(struct inode *in
+ static int comedi_fasync(int fd, struct file *file, int on)
+ {
+ const unsigned minor = iminor(file->f_dentry->d_inode);
+- struct comedi_device_file_info *dev_file_info =
+- comedi_get_device_file_info(minor);
+-
+- struct comedi_device *dev = dev_file_info->device;
++ struct comedi_device_file_info *dev_file_info;
++ struct comedi_device *dev;
++ dev_file_info = comedi_get_device_file_info(minor);
++
++ if (dev_file_info == NULL)
++ return -ENODEV;
++ dev = dev_file_info->device;
++ if (dev == NULL)
++ return -ENODEV;
+
+ return fasync_helper(fd, file, on, &dev->async_queue);
+ }
diff --git a/queue-2.6.32/staging-comedi-fix-signal-handling-in-read-and-write.patch b/queue-2.6.32/staging-comedi-fix-signal-handling-in-read-and-write.patch
new file mode 100644
index 0000000..0cfb080
--- /dev/null
+++ b/queue-2.6.32/staging-comedi-fix-signal-handling-in-read-and-write.patch
@@ -0,0 +1,48 @@
+From 6a9ce6b654e491981f6ef7e214cbd4f63e033848 Mon Sep 17 00:00:00 2001
+From: Federico Vaga <federico.vaga@gmail.com>
+Date: Sat, 29 Oct 2011 09:47:39 +0200
+Subject: Staging: comedi: fix signal handling in read and write
+
+From: Federico Vaga <federico.vaga@gmail.com>
+
+commit 6a9ce6b654e491981f6ef7e214cbd4f63e033848 upstream.
+
+After sleeping on a wait queue, signal_pending(current) should be
+checked (not before sleeping).
+
+Acked-by: Alessandro Rubini <rubini@gnudd.com>
+Signed-off-by: Federico Vaga <federico.vaga@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/comedi/comedi_fops.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/staging/comedi/comedi_fops.c
++++ b/drivers/staging/comedi/comedi_fops.c
+@@ -1599,11 +1599,11 @@ static ssize_t comedi_write(struct file
+ retval = -EAGAIN;
+ break;
+ }
++ schedule();
+ if (signal_pending(current)) {
+ retval = -ERESTARTSYS;
+ break;
+ }
+- schedule();
+ if (!s->busy)
+ break;
+ if (s->busy != file) {
+@@ -1706,11 +1706,11 @@ static ssize_t comedi_read(struct file *
+ retval = -EAGAIN;
+ break;
+ }
++ schedule();
+ if (signal_pending(current)) {
+ retval = -ERESTARTSYS;
+ break;
+ }
+- schedule();
+ if (!s->busy) {
+ retval = 0;
+ break;
diff --git a/queue-2.6.32/staging-usbip-bugfix-for-deadlock.patch b/queue-2.6.32/staging-usbip-bugfix-for-deadlock.patch
new file mode 100644
index 0000000..cb168ba
--- /dev/null
+++ b/queue-2.6.32/staging-usbip-bugfix-for-deadlock.patch
@@ -0,0 +1,63 @@
+From 438957f8d4a84daa7fa5be6978ad5897a2e9e5e5 Mon Sep 17 00:00:00 2001
+From: Bart Westgeest <bart@elbrys.com>
+Date: Tue, 1 Nov 2011 15:01:28 -0400
+Subject: staging: usbip: bugfix for deadlock
+
+From: Bart Westgeest <bart@elbrys.com>
+
+commit 438957f8d4a84daa7fa5be6978ad5897a2e9e5e5 upstream.
+
+Interrupts must be disabled prior to calling usb_hcd_unlink_urb_from_ep.
+If interrupts are not disabled, it can potentially lead to a deadlock.
+The deadlock is readily reproduceable on a slower (ARM based) device
+such as the TI Pandaboard.
+
+Signed-off-by: Bart Westgeest <bart@elbrys.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/staging/usbip/vhci_rx.c | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/drivers/staging/usbip/vhci_rx.c
++++ b/drivers/staging/usbip/vhci_rx.c
+@@ -67,6 +67,7 @@ static void vhci_recv_ret_submit(struct
+ {
+ struct usbip_device *ud = &vdev->ud;
+ struct urb *urb;
++ unsigned long flags;
+
+ spin_lock(&vdev->priv_lock);
+
+@@ -107,9 +108,9 @@ static void vhci_recv_ret_submit(struct
+
+ usbip_dbg_vhci_rx("now giveback urb %p\n", urb);
+
+- spin_lock(&the_controller->lock);
++ spin_lock_irqsave(&the_controller->lock, flags);
+ usb_hcd_unlink_urb_from_ep(vhci_to_hcd(the_controller), urb);
+- spin_unlock(&the_controller->lock);
++ spin_unlock_irqrestore(&the_controller->lock, flags);
+
+ usb_hcd_giveback_urb(vhci_to_hcd(the_controller), urb, urb->status);
+
+@@ -150,6 +151,7 @@ static void vhci_recv_ret_unlink(struct
+ {
+ struct vhci_unlink *unlink;
+ struct urb *urb;
++ unsigned long flags;
+
+ usbip_dump_header(pdu);
+
+@@ -181,9 +183,9 @@ static void vhci_recv_ret_unlink(struct
+ urb->status = pdu->u.ret_unlink.status;
+ usbip_uinfo("%d\n", urb->status);
+
+- spin_lock(&the_controller->lock);
++ spin_lock_irqsave(&the_controller->lock, flags);
+ usb_hcd_unlink_urb_from_ep(vhci_to_hcd(the_controller), urb);
+- spin_unlock(&the_controller->lock);
++ spin_unlock_irqrestore(&the_controller->lock, flags);
+
+ usb_hcd_giveback_urb(vhci_to_hcd(the_controller), urb,
+ urb->status);
diff --git a/queue-2.6.32/usb-ftdi_sio-add-pid-for-propox-ispcable-iii.patch b/queue-2.6.32/usb-ftdi_sio-add-pid-for-propox-ispcable-iii.patch
new file mode 100644
index 0000000..1d974dd
--- /dev/null
+++ b/queue-2.6.32/usb-ftdi_sio-add-pid-for-propox-ispcable-iii.patch
@@ -0,0 +1,40 @@
+From 307369b0ca06b27b511b61714e335ddfccf19c4f Mon Sep 17 00:00:00 2001
+From: Marcin Kościelnicki <koriakin@0x04.net>
+Date: Wed, 30 Nov 2011 17:01:04 +0100
+Subject: usb: ftdi_sio: add PID for Propox ISPcable III
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Marcin Kościelnicki <koriakin@0x04.net>
+
+commit 307369b0ca06b27b511b61714e335ddfccf19c4f upstream.
+
+Signed-off-by: Marcin Kościelnicki <koriakin@0x04.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/ftdi_sio.c | 1 +
+ drivers/usb/serial/ftdi_sio_ids.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+--- a/drivers/usb/serial/ftdi_sio.c
++++ b/drivers/usb/serial/ftdi_sio.c
+@@ -739,6 +739,7 @@ static struct usb_device_id id_table_com
+ { USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_ELSTER_UNICOM_PID) },
+ { USB_DEVICE(FTDI_VID, FTDI_PROPOX_JTAGCABLEII_PID) },
++ { USB_DEVICE(FTDI_VID, FTDI_PROPOX_ISPCABLEIII_PID) },
+ { USB_DEVICE(OLIMEX_VID, OLIMEX_ARM_USB_OCD_PID),
+ .driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
+ { USB_DEVICE(FIC_VID, FIC_NEO1973_DEBUG_PID),
+--- a/drivers/usb/serial/ftdi_sio_ids.h
++++ b/drivers/usb/serial/ftdi_sio_ids.h
+@@ -111,6 +111,7 @@
+
+ /* Propox devices */
+ #define FTDI_PROPOX_JTAGCABLEII_PID 0xD738
++#define FTDI_PROPOX_ISPCABLEIII_PID 0xD739
+
+ /* Lenz LI-USB Computer Interface. */
+ #define FTDI_LENZ_LIUSB_PID 0xD780
diff --git a/queue-2.6.32/usb-option-add-simcom-sim5218.patch b/queue-2.6.32/usb-option-add-simcom-sim5218.patch
new file mode 100644
index 0000000..afae3ef
--- /dev/null
+++ b/queue-2.6.32/usb-option-add-simcom-sim5218.patch
@@ -0,0 +1,28 @@
+From ec0cd94d881ca89cc9fb61d00d0f4b2b52e605b3 Mon Sep 17 00:00:00 2001
+From: Veli-Pekka Peltola <veli-pekka.peltola@bluegiga.com>
+Date: Thu, 24 Nov 2011 22:08:56 +0200
+Subject: usb: option: add SIMCom SIM5218
+
+From: Veli-Pekka Peltola <veli-pekka.peltola@bluegiga.com>
+
+commit ec0cd94d881ca89cc9fb61d00d0f4b2b52e605b3 upstream.
+
+Tested with SIM5218EVB-KIT evaluation kit.
+
+Signed-off-by: Veli-Pekka Peltola <veli-pekka.peltola@bluegiga.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
+@@ -578,6 +578,7 @@ static struct usb_device_id option_ids[]
+ { USB_DEVICE(KYOCERA_VENDOR_ID, KYOCERA_PRODUCT_KPC680) },
+ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6000)}, /* ZTE AC8700 */
+ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x6613)}, /* Onda H600/ZTE MF330 */
++ { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000)}, /* SIMCom SIM5218 */
+ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6280) }, /* BP3-USB & BP3-EXT HSDPA */
+ { USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) },
+ { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
diff --git a/queue-2.6.32/usb-usb-storage-unusual_devs-entry-for-kingston-dt-101-g2.patch b/queue-2.6.32/usb-usb-storage-unusual_devs-entry-for-kingston-dt-101-g2.patch
new file mode 100644
index 0000000..ed78238
--- /dev/null
+++ b/queue-2.6.32/usb-usb-storage-unusual_devs-entry-for-kingston-dt-101-g2.patch
@@ -0,0 +1,35 @@
+From cec28a5428793b6bc64e56687fb239759d6da74e Mon Sep 17 00:00:00 2001
+From: Qinglin Ye <yestyle@gmail.com>
+Date: Wed, 23 Nov 2011 23:39:32 +0800
+Subject: USB: usb-storage: unusual_devs entry for Kingston DT 101 G2
+
+From: Qinglin Ye <yestyle@gmail.com>
+
+commit cec28a5428793b6bc64e56687fb239759d6da74e upstream.
+
+Kingston DT 101 G2 replies a wrong tag while transporting, add an
+unusal_devs entry to ignore the tag validation.
+
+Signed-off-by: Qinglin Ye <yestyle@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
+@@ -1857,6 +1857,13 @@ UNUSUAL_DEV( 0x1370, 0x6828, 0x0110, 0x
+ US_SC_DEVICE, US_PR_DEVICE, NULL,
+ US_FL_IGNORE_RESIDUE ),
+
++/* Reported by Qinglin Ye <yestyle@gmail.com> */
++UNUSUAL_DEV( 0x13fe, 0x3600, 0x0100, 0x0100,
++ "Kingston",
++ "DT 101 G2",
++ US_SC_DEVICE, US_PR_DEVICE, NULL,
++ US_FL_BULK_IGNORE_TAG ),
++
+ /* Reported by Francesco Foresti <frafore@tiscali.it> */
+ UNUSUAL_DEV( 0x14cd, 0x6600, 0x0201, 0x0201,
+ "Super Top",
diff --git a/queue-2.6.32/usb-whci-hcd-fix-endian-conversion-in-qset_clear.patch b/queue-2.6.32/usb-whci-hcd-fix-endian-conversion-in-qset_clear.patch
new file mode 100644
index 0000000..dd20066
--- /dev/null
+++ b/queue-2.6.32/usb-whci-hcd-fix-endian-conversion-in-qset_clear.patch
@@ -0,0 +1,30 @@
+From 8746c83d538cab273d335acb2be226d096f4a5af Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Tue, 22 Nov 2011 10:28:31 +0300
+Subject: USB: whci-hcd: fix endian conversion in qset_clear()
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 8746c83d538cab273d335acb2be226d096f4a5af upstream.
+
+qset->qh.link is an __le64 field and we should be using cpu_to_le64()
+to fill it.
+
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/host/whci/qset.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/usb/host/whci/qset.c
++++ b/drivers/usb/host/whci/qset.c
+@@ -104,7 +104,7 @@ void qset_clear(struct whc *whc, struct
+ {
+ qset->td_start = qset->td_end = qset->ntds = 0;
+
+- qset->qh.link = cpu_to_le32(QH_LINK_NTDS(8) | QH_LINK_T);
++ qset->qh.link = cpu_to_le64(QH_LINK_NTDS(8) | QH_LINK_T);
+ qset->qh.status = qset->qh.status & QH_STATUS_SEQ_MASK;
+ qset->qh.err_count = 0;
+ qset->qh.scratch[0] = 0;