summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@fedoraproject.org>2014-12-10 14:11:21 -0500
committerJosh Boyer <jwboyer@fedoraproject.org>2014-12-10 14:11:30 -0500
commit850c873f101c220b0e7d400bd7c6bb9805b68ed2 (patch)
treecf6be0f8d7126facc535c860df2525ecf2bd1a71
parent1dfa3b196c74bc686d682ad9b663f72394f550d7 (diff)
downloadkernel-850c873f101c220b0e7d400bd7c6bb9805b68ed2.tar.gz
kernel-850c873f101c220b0e7d400bd7c6bb9805b68ed2.tar.xz
kernel-850c873f101c220b0e7d400bd7c6bb9805b68ed2.zip
Fix UAS crashes with Seagate and Fresco Logic drives (rhbz 1164945)
-rw-r--r--kernel.spec11
-rw-r--r--uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch39
-rw-r--r--uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch37
-rw-r--r--xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch45
4 files changed, 132 insertions, 0 deletions
diff --git a/kernel.spec b/kernel.spec
index 417f5091..b2ad7911 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -624,6 +624,11 @@ Patch26090: HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
#CVE-2014-8134 rhbz 1172765 1172769
Patch26091: x86-kvm-Clear-paravirt_enabled-on-KVM-guests-for-esp.patch
+#rhbz 1164945
+Patch26092: xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch
+Patch26093: uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch
+Patch26094: uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
+
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
Patch30000: kernel-arm64.patch
@@ -1358,6 +1363,11 @@ ApplyPatch HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
#CVE-2014-8134 rhbz 1172765 1172769
ApplyPatch x86-kvm-Clear-paravirt_enabled-on-KVM-guests-for-esp.patch
+#rhbz 1164945
+ApplyPatch xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch
+ApplyPatch uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch
+ApplyPatch uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
+
%if 0%{?aarch64patches}
ApplyPatch kernel-arm64.patch
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
@@ -2233,6 +2243,7 @@ fi
# || ||
%changelog
* Wed Dec 10 2014 Josh Boyer <jwboyer@fedoraproject.org>
+- Fix UAS crashes with Seagate and Fresco Logic drives (rhbz 1164945)
- CVE-2014-8134 fix espfix for 32-bit KVM paravirt guests (rhbz 1172765 1172769)
* Mon Dec 08 2014 Justin M. Forbes <jforbes@fedoraproject.org> - 3.17.6-300
diff --git a/uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch b/uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch
new file mode 100644
index 00000000..1e12a646
--- /dev/null
+++ b/uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch
@@ -0,0 +1,39 @@
+From 37a72caa7f031da7b3e63252c1f0023b8272203c Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 5 Dec 2014 11:06:36 +0100
+Subject: [PATCH 2/3] uas: Add US_FL_NO_ATA_1X for Seagate devices with usb-id
+ 0bc2:a013
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is yet another Seagate device which needs the US_FL_NO_ATA_1X quirk
+
+Reported-by: Marcin Zajączkowski <mszpak@wp.pl>
+Cc: stable@vger.kernel.org # 3.16
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/usb/storage/unusual_uas.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
+index 18a283d6de1c..2918376a1979 100644
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -68,6 +68,13 @@ UNUSUAL_DEV(0x0bc2, 0xa003, 0x0000, 0x9999,
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_ATA_1X),
+
++/* Reported-by: Marcin Zajączkowski <mszpak@wp.pl> */
++UNUSUAL_DEV(0x0bc2, 0xa013, 0x0000, 0x9999,
++ "Seagate",
++ "Backup Plus",
++ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++ US_FL_NO_ATA_1X),
++
+ /* https://bbs.archlinux.org/viewtopic.php?id=183190 */
+ UNUSUAL_DEV(0x0bc2, 0xab20, 0x0000, 0x9999,
+ "Seagate",
+--
+2.1.0
+
diff --git a/uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch b/uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
new file mode 100644
index 00000000..11725df5
--- /dev/null
+++ b/uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
@@ -0,0 +1,37 @@
+From a7ea9a460f28ef9781ba8dad4a6feb5fd01202f2 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Mon, 8 Dec 2014 09:46:36 +0100
+Subject: [PATCH 3/3] uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS566 with
+ usb-id 0bc2:a013
+
+Like the JMicron JMS567 enclosures with the JMS566 choke on report-opcodes,
+so avoid it.
+
+Tested-and-reported-by: Takeo Nakayama <javhera@gmx.com>
+Cc: stable@vger.kernel.org # 3.16
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/usb/storage/unusual_uas.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
+index 2918376a1979..2f0a3d35269a 100644
+--- a/drivers/usb/storage/unusual_uas.h
++++ b/drivers/usb/storage/unusual_uas.h
+@@ -111,6 +111,13 @@ UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999,
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_ATA_1X),
+
++/* Reported-by: Takeo Nakayama <javhera@gmx.com> */
++UNUSUAL_DEV(0x357d, 0x7788, 0x0000, 0x9999,
++ "JMicron",
++ "JMS566",
++ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
++ US_FL_NO_REPORT_OPCODES),
++
+ /* Reported-by: Hans de Goede <hdegoede@redhat.com> */
+ UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999,
+ "Hitachi",
+--
+2.1.0
+
diff --git a/xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch b/xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch
new file mode 100644
index 00000000..43181ff0
--- /dev/null
+++ b/xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch
@@ -0,0 +1,45 @@
+From e6a429eb0bfa03e3dca62e3922874d768833395f Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Fri, 5 Dec 2014 11:01:00 +0100
+Subject: [PATCH 1/3] xhci: Add broken-streams quirk for Fresco Logic FL1000G
+ xhci controllers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Streams do not work reliabe on Fresco Logic FL1000G xhci controllers,
+trying to use them results in errors like this:
+
+21:37:33 kernel: xhci_hcd 0000:04:00.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
+21:37:33 kernel: xhci_hcd 0000:04:00.0: @00000000368b3570 9067b000 00000000 05000000 01078001
+21:37:33 kernel: xhci_hcd 0000:04:00.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
+21:37:33 kernel: xhci_hcd 0000:04:00.0: @00000000368b3580 9067b400 00000000 05000000 01038001
+
+As always I've ordered a pci-e addon card with a Fresco Logic controller for
+myself to see if I can come up with a better fix then the big hammer, in
+the mean time this will make uas devices work again (in usb-storage mode)
+for FL1000G users.
+
+Reported-by: Marcin Zajączkowski <mszpak@wp.pl>
+Cc: stable@vger.kernel.org # 3.15
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/usb/host/xhci-pci.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
+index d41ce7aaa97d..63f79aa82673 100644
+--- a/drivers/usb/host/xhci-pci.c
++++ b/drivers/usb/host/xhci-pci.c
+@@ -80,6 +80,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
+ "must be suspended extra slowly",
+ pdev->revision);
+ }
++ if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK)
++ xhci->quirks |= XHCI_BROKEN_STREAMS;
+ /* Fresco Logic confirms: all revisions of this chip do not
+ * support MSI, even though some of them claim to in their PCI
+ * capabilities.
+--
+2.1.0
+