summaryrefslogtreecommitdiffstats
path: root/patch-5.14-redhat.patch
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@fedoraproject.org>2021-11-03 08:32:27 -0500
committerJustin M. Forbes <jforbes@fedoraproject.org>2021-11-03 08:32:27 -0500
commit08d3c70b3d7eadbeb89d512717b2dfccea640405 (patch)
tree4e56ff7ae47aa1ad1e54fdc38d7b906ff3a80174 /patch-5.14-redhat.patch
parent6563c941b8ad05be3f82f5cddec2996be94e8f16 (diff)
downloadkernel-08d3c70b3d7eadbeb89d512717b2dfccea640405.tar.gz
kernel-08d3c70b3d7eadbeb89d512717b2dfccea640405.tar.xz
kernel-08d3c70b3d7eadbeb89d512717b2dfccea640405.zip
kernel-5.14.16-1
* Wed Nov 03 2021 Justin M. Forbes <jforbes@fedoraproject.org> [5.14.16-1] - Update release for usb fix rebuild (Justin M. Forbes) - Revert "xhci: Set HCD flag to defer primary roothub registration" (Justin M. Forbes) - Revert "usb: core: hcd: Add support for deferring roothub registration" (Justin M. Forbes) Resolves: rhbz# Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
Diffstat (limited to 'patch-5.14-redhat.patch')
-rw-r--r--patch-5.14-redhat.patch107
1 files changed, 106 insertions, 1 deletions
diff --git a/patch-5.14-redhat.patch b/patch-5.14-redhat.patch
index 77eb7a574..e2d266b75 100644
--- a/patch-5.14-redhat.patch
+++ b/patch-5.14-redhat.patch
@@ -23,7 +23,9 @@
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 4 +
drivers/net/wireguard/main.c | 6 +
drivers/pci/quirks.c | 24 +
+ drivers/usb/core/hcd.c | 29 +-
drivers/usb/core/hub.c | 7 +
+ drivers/usb/host/xhci.c | 1 -
fs/xfs/xfs_super.c | 8 -
include/linux/efi.h | 22 +-
include/linux/lsm_hook_defs.h | 2 +
@@ -31,6 +33,7 @@
include/linux/random.h | 7 +
include/linux/rmi.h | 1 +
include/linux/security.h | 5 +
+ include/linux/usb/hcd.h | 2 -
init/Kconfig | 2 +-
kernel/module_signing.c | 9 +-
mm/cma.c | 10 +
@@ -52,7 +55,7 @@
tools/testing/selftests/bpf/progs/linked_maps2.c | 76 ---
tools/testing/selftests/bpf/progs/linked_vars1.c | 54 --
tools/testing/selftests/bpf/progs/linked_vars2.c | 55 ---
- 54 files changed, 671 insertions(+), 1494 deletions(-)
+ 57 files changed, 677 insertions(+), 1520 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 110b305af27f..488feec76f0a 100644
@@ -1330,6 +1333,76 @@ index 8c3c1ef92171..18431236ab9f 100644
/*
* Intersil/Techwell TW686[4589]-based video capture cards have an empty (zero)
* class code. Fix it.
+diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
+index 99ff2d23be05..0f8b7c93310e 100644
+--- a/drivers/usb/core/hcd.c
++++ b/drivers/usb/core/hcd.c
+@@ -2775,7 +2775,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);
+@@ -2936,26 +2935,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;
+
+@@ -2999,7 +2985,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);
+
+@@ -3010,7 +2995,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);
+
+@@ -3020,8 +3004,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);
+
+ /*
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 86658a81d284..5647f4756e97 100644
--- a/drivers/usb/core/hub.c
@@ -1348,6 +1421,18 @@ index 86658a81d284..5647f4756e97 100644
/* Lock the device, then check to see if we were
* disconnected while waiting for the lock to succeed. */
usb_lock_device(hdev);
+diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
+index cb730683f898..4e32b96ccc88 100644
+--- a/drivers/usb/host/xhci.c
++++ b/drivers/usb/host/xhci.c
+@@ -692,7 +692,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/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 2c9e26a44546..f96324912d6a 100644
--- a/fs/xfs/xfs_super.c
@@ -1532,6 +1617,26 @@ index 5b7288521300..f966f591c91e 100644
#endif /* CONFIG_SECURITY */
#if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE)
+diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
+index 2c1fc9212cf2..548a028f2dab 100644
+--- 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/init/Kconfig b/init/Kconfig
index 55f9f7738ebb..564553afb251 100644
--- a/init/Kconfig