]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Nov 2021 16:43:53 +0000 (17:43 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Nov 2021 16:43:53 +0000 (17:43 +0100)
added patches:
revert-usb-core-hcd-add-support-for-deferring-roothub.patch
revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch

queue-5.10/revert-usb-core-hcd-add-support-for-deferring-roothub.patch [new file with mode: 0644]
queue-5.10/revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/revert-usb-core-hcd-add-support-for-deferring-roothub.patch b/queue-5.10/revert-usb-core-hcd-add-support-for-deferring-roothub.patch
new file mode 100644 (file)
index 0000000..56bf129
--- /dev/null
@@ -0,0 +1,114 @@
+From a491b2e7c00f85a65ea78438d6add1c54a85c3ca Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Wed, 3 Nov 2021 16:51:36 +0100
+Subject: Revert "usb: core: hcd: Add support for deferring roothub registration"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit d58fc9e9c15825e3a8fc1ef3b52495c93c41e71c which is
+commit 58877b0824da15698bd85a0a9dbfa8c354e6ecb7 upstream.
+
+It has been reported to be causing problems in Arch and Fedora bug
+reports.
+
+Reported-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://bbs.archlinux.org/viewtopic.php?pid=2000956#p2000956
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019542
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019576
+Link: https://lore.kernel.org/r/42bcbea6-5eb8-16c7-336a-2cb72e71bc36@redhat.com
+Cc: Mathias Nyman <mathias.nyman@linux.intel.com>
+Cc: Chris Chiu <chris.chiu@canonical.com>
+Cc: Alan Stern <stern@rowland.harvard.edu>
+Cc: Kishon Vijay Abraham I <kishon@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/core/hcd.c  |   29 ++++++-----------------------
+ include/linux/usb/hcd.h |    2 --
+ 2 files changed, 6 insertions(+), 25 deletions(-)
+
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -2640,7 +2640,6 @@ int usb_add_hcd(struct usb_hcd *hcd,
+ {
+       int retval;
+       struct usb_device *rhdev;
+-      struct usb_hcd *shared_hcd;
+       if (!hcd->skip_phy_initialization && usb_hcd_is_primary_hcd(hcd)) {
+               hcd->phy_roothub = usb_phy_roothub_alloc(hcd->self.sysdev);
+@@ -2797,26 +2796,13 @@ int usb_add_hcd(struct usb_hcd *hcd,
+               goto err_hcd_driver_start;
+       }
+-      /* starting here, usbcore will pay attention to the shared HCD roothub */
+-      shared_hcd = hcd->shared_hcd;
+-      if (!usb_hcd_is_primary_hcd(hcd) && shared_hcd && HCD_DEFER_RH_REGISTER(shared_hcd)) {
+-              retval = register_root_hub(shared_hcd);
+-              if (retval != 0)
+-                      goto err_register_root_hub;
+-
+-              if (shared_hcd->uses_new_polling && HCD_POLL_RH(shared_hcd))
+-                      usb_hcd_poll_rh_status(shared_hcd);
+-      }
+-
+       /* starting here, usbcore will pay attention to this root hub */
+-      if (!HCD_DEFER_RH_REGISTER(hcd)) {
+-              retval = register_root_hub(hcd);
+-              if (retval != 0)
+-                      goto err_register_root_hub;
++      retval = register_root_hub(hcd);
++      if (retval != 0)
++              goto err_register_root_hub;
+-              if (hcd->uses_new_polling && HCD_POLL_RH(hcd))
+-                      usb_hcd_poll_rh_status(hcd);
+-      }
++      if (hcd->uses_new_polling && HCD_POLL_RH(hcd))
++              usb_hcd_poll_rh_status(hcd);
+       return retval;
+@@ -2859,7 +2845,6 @@ EXPORT_SYMBOL_GPL(usb_add_hcd);
+ void usb_remove_hcd(struct usb_hcd *hcd)
+ {
+       struct usb_device *rhdev = hcd->self.root_hub;
+-      bool rh_registered;
+       dev_info(hcd->self.controller, "remove, state %x\n", hcd->state);
+@@ -2870,7 +2855,6 @@ void usb_remove_hcd(struct usb_hcd *hcd)
+       dev_dbg(hcd->self.controller, "roothub graceful disconnect\n");
+       spin_lock_irq (&hcd_root_hub_lock);
+-      rh_registered = hcd->rh_registered;
+       hcd->rh_registered = 0;
+       spin_unlock_irq (&hcd_root_hub_lock);
+@@ -2880,8 +2864,7 @@ void usb_remove_hcd(struct usb_hcd *hcd)
+       cancel_work_sync(&hcd->died_work);
+       mutex_lock(&usb_bus_idr_lock);
+-      if (rh_registered)
+-              usb_disconnect(&rhdev);         /* Sets rhdev to NULL */
++      usb_disconnect(&rhdev);         /* Sets rhdev to NULL */
+       mutex_unlock(&usb_bus_idr_lock);
+       /*
+--- a/include/linux/usb/hcd.h
++++ b/include/linux/usb/hcd.h
+@@ -124,7 +124,6 @@ struct usb_hcd {
+ #define HCD_FLAG_RH_RUNNING           5       /* root hub is running? */
+ #define HCD_FLAG_DEAD                 6       /* controller has died? */
+ #define HCD_FLAG_INTF_AUTHORIZED      7       /* authorize interfaces? */
+-#define HCD_FLAG_DEFER_RH_REGISTER    8       /* Defer roothub registration */
+       /* The flags can be tested using these macros; they are likely to
+        * be slightly faster than test_bit().
+@@ -135,7 +134,6 @@ struct usb_hcd {
+ #define HCD_WAKEUP_PENDING(hcd)       ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING))
+ #define HCD_RH_RUNNING(hcd)   ((hcd)->flags & (1U << HCD_FLAG_RH_RUNNING))
+ #define HCD_DEAD(hcd)         ((hcd)->flags & (1U << HCD_FLAG_DEAD))
+-#define HCD_DEFER_RH_REGISTER(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEFER_RH_REGISTER))
+       /*
+        * Specifies if interfaces are authorized by default
diff --git a/queue-5.10/revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch b/queue-5.10/revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch
new file mode 100644 (file)
index 0000000..7d0e75c
--- /dev/null
@@ -0,0 +1,37 @@
+From bf77c0c75936d0b4742662c095defaf60e255215 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Wed, 3 Nov 2021 16:51:12 +0100
+Subject: Revert "xhci: Set HCD flag to defer primary roothub registration"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 0ea9ac731a315cd10bd6d6b33817b68ca9111ecf which is
+commit b7a0a792f864583207c593b50fd1b752ed89f4c1 upstream.
+
+It has been reported to be causing problems in Arch and Fedora bug
+reports.
+
+Reported-by: Hans de Goede <hdegoede@redhat.com>
+Link: https://bbs.archlinux.org/viewtopic.php?pid=2000956#p2000956
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019542
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=2019576
+Link: https://lore.kernel.org/r/42bcbea6-5eb8-16c7-336a-2cb72e71bc36@redhat.com
+Cc: Mathias Nyman <mathias.nyman@linux.intel.com>
+Cc: Chris Chiu <chris.chiu@canonical.com>
+Cc: Alan Stern <stern@rowland.harvard.edu>
+Cc: Kishon Vijay Abraham I <kishon@ti.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/usb/host/xhci.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -693,7 +693,6 @@ int xhci_run(struct usb_hcd *hcd)
+               if (ret)
+                       xhci_free_command(xhci, command);
+       }
+-      set_bit(HCD_FLAG_DEFER_RH_REGISTER, &hcd->flags);
+       xhci_dbg_trace(xhci, trace_xhci_dbg_init,
+                       "Finished xhci_run for USB2 roothub");
index e1733dac28d08c9642b179316169d4840bcceb43..ba4acbccb0527b5b28d6d9f5eb782e3406aa6a1b 100644 (file)
@@ -6,3 +6,5 @@ net-ethernet-microchip-lan743x-fix-skb-allocation-failure.patch
 mm-hwpoison-remove-the-unnecessary-thp-check.patch
 mm-filemap-check-if-thp-has-hwpoisoned-subpage-for-pmd-page-fault.patch
 media-firewire-firedtv-avc-fix-a-buffer-overflow-in-avc_ca_pmt.patch
+revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch
+revert-usb-core-hcd-add-support-for-deferring-roothub.patch