diff options
Diffstat (limited to 'patch-5.14-redhat.patch')
-rw-r--r-- | patch-5.14-redhat.patch | 107 |
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 |