]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 Jun 2012 17:01:53 +0000 (10:01 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 18 Jun 2012 17:01:53 +0000 (10:01 -0700)
added patches:
hfsplus-fix-overflow-in-sector-calculations-in-hfsplus_submit_bio.patch
usb-storage-add-090c-1000-to-unusal-devs.patch
xhci-increase-the-timeout-for-controller-save-restore-state-operation.patch

queue-3.0/hfsplus-fix-overflow-in-sector-calculations-in-hfsplus_submit_bio.patch [new file with mode: 0644]
queue-3.0/series
queue-3.0/usb-storage-add-090c-1000-to-unusal-devs.patch [new file with mode: 0644]
queue-3.0/xhci-increase-the-timeout-for-controller-save-restore-state-operation.patch [new file with mode: 0644]

diff --git a/queue-3.0/hfsplus-fix-overflow-in-sector-calculations-in-hfsplus_submit_bio.patch b/queue-3.0/hfsplus-fix-overflow-in-sector-calculations-in-hfsplus_submit_bio.patch
new file mode 100644 (file)
index 0000000..fb46a1b
--- /dev/null
@@ -0,0 +1,37 @@
+From a6dc8c04218eb752ff79cdc24a995cf51866caed Mon Sep 17 00:00:00 2001
+From: Janne Kalliomäki <janne@tuxera.com>
+Date: Sun, 17 Jun 2012 17:05:24 -0400
+Subject: hfsplus: fix overflow in sector calculations in hfsplus_submit_bio
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Janne Kalliomäki <janne@tuxera.com>
+
+commit a6dc8c04218eb752ff79cdc24a995cf51866caed upstream.
+
+The variable io_size was unsigned int, which caused the wrong sector number
+to be calculated after aligning it. This then caused mount to fail with big
+volumes, as backup volume header information was searched from a
+wrong sector.
+
+Signed-off-by: Janne Kalliomäki <janne@tuxera.com>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/hfsplus/wrapper.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/hfsplus/wrapper.c
++++ b/fs/hfsplus/wrapper.c
+@@ -56,7 +56,7 @@ int hfsplus_submit_bio(struct super_bloc
+       DECLARE_COMPLETION_ONSTACK(wait);
+       struct bio *bio;
+       int ret = 0;
+-      unsigned int io_size;
++      u64 io_size;
+       loff_t start;
+       int offset;
index 3c9b1da300b1cd4ee511786235301ed190dbfbb4..dcd0d4c9b25aa55c984c97b83448663b4932e711 100644 (file)
@@ -6,3 +6,6 @@ usb-option-updated-huawei-k4605-has-better-id.patch
 usb-option-add-more-yuga-device-ids.patch
 usb-option-fix-memory-leak.patch
 usb-option-fix-port-data-abuse.patch
+hfsplus-fix-overflow-in-sector-calculations-in-hfsplus_submit_bio.patch
+xhci-increase-the-timeout-for-controller-save-restore-state-operation.patch
+usb-storage-add-090c-1000-to-unusal-devs.patch
diff --git a/queue-3.0/usb-storage-add-090c-1000-to-unusal-devs.patch b/queue-3.0/usb-storage-add-090c-1000-to-unusal-devs.patch
new file mode 100644 (file)
index 0000000..ef5b93d
--- /dev/null
@@ -0,0 +1,49 @@
+From afff07e61a5243e14ee3f0a272a0380cd744a8a3 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Wed, 13 Jun 2012 11:44:58 +0200
+Subject: usb-storage: Add 090c:1000 to unusal-devs
+
+From: Hans de Goede <hdegoede@redhat.com>
+
+commit afff07e61a5243e14ee3f0a272a0380cd744a8a3 upstream.
+
+This device gives a bogus answer to get_capacity(16):
+[ 8628.278614] scsi 8:0:0:0: Direct-Access     USB 2.0  USB Flash Drive  1100 PQ: 0 ANSI: 4
+[ 8628.279452] sd 8:0:0:0: Attached scsi generic sg4 type 0
+[ 8628.280338] sd 8:0:0:0: [sdd] 35747322042253313 512-byte logical blocks: (18.3 EB/15.8 EiB)
+
+So set the quirk flag to avoid using get_capacity(16) with it:
+[11731.386014] usb-storage 2-1.6:1.0: Quirks match for vid 090c pid 1000: 80000
+[11731.386075] scsi9 : usb-storage 2-1.6:1.0
+[11731.386172] usbcore: registered new interface driver usb-storage
+[11731.386175] USB Mass Storage support registered.
+[11732.387394] scsi 9:0:0:0: Direct-Access     USB 2.0  USB Flash Drive  1100 PQ: 0 ANSI: 4
+[11732.388462] sd 9:0:0:0: Attached scsi generic sg3 type 0
+[11732.389432] sd 9:0:0:0: [sdc] 7975296 512-byte logical blocks: (4.08 GB/3.80 GiB)
+
+Which makes the capacity look a lot more sane :)
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+Tested-by: Simon Raffeiner <sturmflut@lieberbiber.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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
+@@ -1107,6 +1107,13 @@ UNUSUAL_DEV( 0x090a, 0x1200, 0x0000, 0x9
+               USB_SC_RBC, USB_PR_BULK, NULL,
+               0 ),
++/* Feiya QDI U2 DISK, reported by Hans de Goede <hdegoede@redhat.com> */
++UNUSUAL_DEV( 0x090c, 0x1000, 0x0000, 0xffff,
++              "Feiya",
++              "QDI U2 DISK",
++              USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++              US_FL_NO_READ_CAPACITY_16 ),
++
+ /* aeb */
+ UNUSUAL_DEV( 0x090c, 0x1132, 0x0000, 0xffff,
+               "Feiya",
diff --git a/queue-3.0/xhci-increase-the-timeout-for-controller-save-restore-state-operation.patch b/queue-3.0/xhci-increase-the-timeout-for-controller-save-restore-state-operation.patch
new file mode 100644 (file)
index 0000000..7e47da7
--- /dev/null
@@ -0,0 +1,63 @@
+From 622eb783fe6ff4c1baa47db16c3a5db97f9e6e50 Mon Sep 17 00:00:00 2001
+From: Andiry Xu <andiry.xu@gmail.com>
+Date: Wed, 13 Jun 2012 10:51:57 +0800
+Subject: xHCI: Increase the timeout for controller save/restore state operation
+
+From: Andiry Xu <andiry.xu@gmail.com>
+
+commit 622eb783fe6ff4c1baa47db16c3a5db97f9e6e50 upstream.
+
+When system software decides to power down the xHC with the intent of
+resuming operation at a later time, it will ask xHC to save the internal
+state and restore it when resume to correctly recover from a power event.
+Two bits are used to enable this operation: Save State and Restore State.
+
+xHCI spec 4.23.2 says software should "Set the Controller Save/Restore
+State flag in the USBCMD register and wait for the Save/Restore State
+Status flag in the USBSTS register to transition to '0'". However, it does
+not define how long software should wait for the SSS/RSS bit to transition
+to 0.
+
+Currently the timeout is set to 1ms. There is bug report
+(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1002697)
+indicates that the timeout is too short for ASMedia ASM1042 host controller
+to save/restore the state successfully. Increase the timeout to 10ms helps to
+resolve the issue.
+
+This patch should be backported to stable kernels as old as 2.6.37, that
+contain the commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI:
+PCI power management implementation"
+
+Signed-off-by: Andiry Xu <andiry.xu@gmail.com>
+Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
+Cc: Ming Lei <ming.lei@canonical.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/usb/host/xhci.c |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -730,8 +730,8 @@ int xhci_suspend(struct xhci_hcd *xhci)
+       command = xhci_readl(xhci, &xhci->op_regs->command);
+       command |= CMD_CSS;
+       xhci_writel(xhci, command, &xhci->op_regs->command);
+-      if (handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10*100)) {
+-              xhci_warn(xhci, "WARN: xHC CMD_CSS timeout\n");
++      if (handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10 * 1000)) {
++              xhci_warn(xhci, "WARN: xHC save state timeout\n");
+               spin_unlock_irq(&xhci->lock);
+               return -ETIMEDOUT;
+       }
+@@ -786,8 +786,8 @@ int xhci_resume(struct xhci_hcd *xhci, b
+               command |= CMD_CRS;
+               xhci_writel(xhci, command, &xhci->op_regs->command);
+               if (handshake(xhci, &xhci->op_regs->status,
+-                            STS_RESTORE, 0, 10*100)) {
+-                      xhci_dbg(xhci, "WARN: xHC CMD_CSS timeout\n");
++                            STS_RESTORE, 0, 10 * 1000)) {
++                      xhci_warn(xhci, "WARN: xHC restore state timeout\n");
+                       spin_unlock_irq(&xhci->lock);
+                       return -ETIMEDOUT;
+               }