From: Greg Kroah-Hartman Date: Wed, 3 Nov 2021 16:43:53 +0000 (+0100) Subject: 5.10-stable patches X-Git-Tag: v4.19.216~30 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cd8c4c5d39584fdc29d0191ded755fff8445281d;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: revert-usb-core-hcd-add-support-for-deferring-roothub.patch revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch --- 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 index 00000000000..56bf1294627 --- /dev/null +++ b/queue-5.10/revert-usb-core-hcd-add-support-for-deferring-roothub.patch @@ -0,0 +1,114 @@ +From a491b2e7c00f85a65ea78438d6add1c54a85c3ca Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Wed, 3 Nov 2021 16:51:36 +0100 +Subject: Revert "usb: core: hcd: Add support for deferring roothub registration" + +From: Greg Kroah-Hartman + +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 +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 +Cc: Chris Chiu +Cc: Alan Stern +Cc: Kishon Vijay Abraham I +Signed-off-by: Greg Kroah-Hartman +--- + 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 index 00000000000..7d0e75c052b --- /dev/null +++ b/queue-5.10/revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch @@ -0,0 +1,37 @@ +From bf77c0c75936d0b4742662c095defaf60e255215 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman +Date: Wed, 3 Nov 2021 16:51:12 +0100 +Subject: Revert "xhci: Set HCD flag to defer primary roothub registration" + +From: Greg Kroah-Hartman + +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 +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 +Cc: Chris Chiu +Cc: Alan Stern +Cc: Kishon Vijay Abraham I +Signed-off-by: Greg Kroah-Hartman +--- + 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"); + diff --git a/queue-5.10/series b/queue-5.10/series index e1733dac28d..ba4acbccb05 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -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