diff --git a/kernel.spec b/kernel.spec index 202e801d4..a840ee625 100644 --- a/kernel.spec +++ b/kernel.spec @@ -615,6 +615,11 @@ Patch26070: 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 @@ -1339,6 +1344,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. @@ -2208,6 +2218,7 @@ fi # || || %changelog * Wed Dec 10 2014 Josh Boyer +- 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) * Tue Dec 09 2014 Josh Boyer - 3.18.0-1 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 000000000..1e12a646f --- /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 +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 +Cc: stable@vger.kernel.org # 3.16 +Signed-off-by: Hans de Goede +--- + 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 */ ++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 000000000..11725df52 --- /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 +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 +Cc: stable@vger.kernel.org # 3.16 +Signed-off-by: Hans de Goede +--- + 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 */ ++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 */ + 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 000000000..43181ff04 --- /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 +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 +Cc: stable@vger.kernel.org # 3.15 +Signed-off-by: Hans de Goede +--- + 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 +