diff options
author | Justin M. Forbes <jforbes@fedoraproject.org> | 2022-01-27 10:03:08 -0600 |
---|---|---|
committer | Justin M. Forbes <jforbes@fedoraproject.org> | 2022-01-27 10:03:08 -0600 |
commit | 0c347acd307f4fe0d870f2e750313ad027075c8f (patch) | |
tree | ca441d07f0e736b63c877fd8ff93f0eb60d93623 /patch-5.15-redhat.patch | |
parent | 6c12dff3f9403b5908e70c3737c61e7b17c7471d (diff) | |
download | kernel-0c347acd307f4fe0d870f2e750313ad027075c8f.tar.gz kernel-0c347acd307f4fe0d870f2e750313ad027075c8f.tar.xz kernel-0c347acd307f4fe0d870f2e750313ad027075c8f.zip |
kernel-5.15.17-0
* Thu Jan 27 2022 Justin M. Forbes <jforbes@fedoraproject.org> [5.15.17-0]
- Revert "PCI/MSI: Mask MSI-X vectors only on success" (Justin M. Forbes)
Resolves: rhbz#
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
Diffstat (limited to 'patch-5.15-redhat.patch')
-rw-r--r-- | patch-5.15-redhat.patch | 129 |
1 files changed, 50 insertions, 79 deletions
diff --git a/patch-5.15-redhat.patch b/patch-5.15-redhat.patch index 793de53d9..bf15b1a31 100644 --- a/patch-5.15-redhat.patch +++ b/patch-5.15-redhat.patch @@ -23,17 +23,14 @@ drivers/firmware/efi/Makefile | 1 + drivers/firmware/efi/efi.c | 124 +++++++++++++++------ drivers/firmware/efi/secureboot.c | 38 +++++++ - drivers/gpu/drm/amd/amdgpu/cik.c | 4 + - drivers/gpu/drm/amd/amdgpu/vi.c | 4 + drivers/hid/hid-rmi.c | 64 ----------- drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 ++++ drivers/input/rmi4/rmi_driver.c | 124 ++++++++++++--------- drivers/iommu/iommu.c | 22 ++++ - drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 +- - drivers/net/wireless/marvell/mwifiex/usb.c | 3 +- drivers/nvme/host/core.c | 22 +++- drivers/nvme/host/multipath.c | 19 ++-- drivers/nvme/host/nvme.h | 4 + + drivers/pci/msi.c | 13 +-- drivers/pci/quirks.c | 24 ++++ drivers/platform/x86/thinkpad_acpi.c | 4 +- drivers/usb/core/hub.c | 7 ++ @@ -54,7 +51,7 @@ security/lockdown/lockdown.c | 1 + security/security.c | 6 + tools/testing/selftests/netfilter/nft_nat.sh | 5 +- - 56 files changed, 808 insertions(+), 207 deletions(-) + 53 files changed, 800 insertions(+), 215 deletions(-) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 8ff6dafafdf8..e3f786336cf9 100644 @@ -77,7 +74,7 @@ index 8ff6dafafdf8..e3f786336cf9 100644 This is normally done in pci_enable_device(), so this option is a temporary workaround diff --git a/Makefile b/Makefile -index af173c9df942..b8b62c920fdf 100644 +index 088197ed3f66..18279618693d 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -579,11 +576,11 @@ index c68e694fca26..146cba5ae5bc 100644 return ctx.rc; } diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c -index 5b54c80b9d32..86c314f8d8a0 100644 +index 6e9cd41c5f9b..07db2f6afa17 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c -@@ -1720,6 +1720,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) - if (!acpi_match_device_ids(device, i2c_multi_instantiate_ids)) +@@ -1727,6 +1727,15 @@ static bool acpi_device_enumeration_by_parent(struct acpi_device *device) + if (!acpi_match_device_ids(device, ignore_serial_bus_ids)) return false; + /* @@ -689,7 +686,7 @@ index fe91090e04a4..f00bc6886913 100644 rv = ipmi_register_driver(); mutex_unlock(&ipmi_interfaces_mutex); diff --git a/drivers/char/random.c b/drivers/char/random.c -index 7470ee24db2f..a3ac18f64ba7 100644 +index a27ae3999ff3..dc4e136adb08 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -335,6 +335,7 @@ @@ -722,7 +719,7 @@ index 7470ee24db2f..a3ac18f64ba7 100644 /********************************************************************** * * OS independent entropy store. Here are the functions which handle -@@ -1878,6 +1887,13 @@ random_poll(struct file *file, poll_table * wait) +@@ -1880,6 +1889,13 @@ random_poll(struct file *file, poll_table * wait) return mask; } @@ -736,7 +733,7 @@ index 7470ee24db2f..a3ac18f64ba7 100644 static int write_pool(struct entropy_store *r, const char __user *buffer, size_t count) { -@@ -1981,7 +1997,58 @@ static int random_fasync(int fd, struct file *filp, int on) +@@ -1983,7 +1999,58 @@ static int random_fasync(int fd, struct file *filp, int on) return fasync_helper(fd, filp, on, &fasync); } @@ -795,7 +792,7 @@ index 7470ee24db2f..a3ac18f64ba7 100644 .read = random_read, .write = random_write, .poll = random_poll, -@@ -1992,6 +2059,7 @@ const struct file_operations random_fops = { +@@ -1994,6 +2061,7 @@ const struct file_operations random_fops = { }; const struct file_operations urandom_fops = { @@ -803,7 +800,7 @@ index 7470ee24db2f..a3ac18f64ba7 100644 .read = urandom_read, .write = random_write, .unlocked_ioctl = random_ioctl, -@@ -2000,9 +2068,31 @@ const struct file_operations urandom_fops = { +@@ -2002,9 +2070,31 @@ const struct file_operations urandom_fops = { .llseek = noop_llseek, }; @@ -835,7 +832,7 @@ index 7470ee24db2f..a3ac18f64ba7 100644 int ret; if (flags & ~(GRND_NONBLOCK|GRND_RANDOM|GRND_INSECURE)) -@@ -2018,6 +2108,18 @@ SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, +@@ -2020,6 +2110,18 @@ SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, if (count > INT_MAX) count = INT_MAX; @@ -854,7 +851,7 @@ index 7470ee24db2f..a3ac18f64ba7 100644 if (!(flags & GRND_INSECURE) && !crng_ready()) { if (flags & GRND_NONBLOCK) return -EAGAIN; -@@ -2324,3 +2426,16 @@ void add_bootloader_randomness(const void *buf, unsigned int size) +@@ -2329,3 +2431,16 @@ void add_bootloader_randomness(const void *buf, unsigned int size) add_device_randomness(buf, size); } EXPORT_SYMBOL_GPL(add_bootloader_randomness); @@ -1072,36 +1069,6 @@ index 000000000000..de0a3714a5d4 + } + } +} -diff --git a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c -index 54f28c075f21..f10ce740a29c 100644 ---- a/drivers/gpu/drm/amd/amdgpu/cik.c -+++ b/drivers/gpu/drm/amd/amdgpu/cik.c -@@ -1428,6 +1428,10 @@ static int cik_asic_reset(struct amdgpu_device *adev) - { - int r; - -+ /* APUs don't have full asic reset */ -+ if (adev->flags & AMD_IS_APU) -+ return 0; -+ - if (cik_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) { - dev_info(adev->dev, "BACO reset\n"); - r = amdgpu_dpm_baco_reset(adev); -diff --git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c -index fe9a7cc8d9eb..6645ebbd2696 100644 ---- a/drivers/gpu/drm/amd/amdgpu/vi.c -+++ b/drivers/gpu/drm/amd/amdgpu/vi.c -@@ -956,6 +956,10 @@ static int vi_asic_reset(struct amdgpu_device *adev) - { - int r; - -+ /* APUs don't have full asic reset */ -+ if (adev->flags & AMD_IS_APU) -+ return 0; -+ - if (vi_asic_reset_method(adev) == AMD_RESET_METHOD_BACO) { - dev_info(adev->dev, "BACO reset\n"); - r = amdgpu_dpm_baco_reset(adev); diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c index 311eee599ce9..2460c6bd46f8 100644 --- a/drivers/hid/hid-rmi.c @@ -1446,7 +1413,7 @@ index 258d5fe3d395..f7298e3dc8f3 100644 if (data->f01_container->dev.driver) { /* Driver already bound, so enable ATTN now. */ diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c -index 3303d707bab4..372edaaafaa1 100644 +index f62fb6a58f10..26ade573cec9 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -7,6 +7,7 @@ @@ -1457,7 +1424,7 @@ index 3303d707bab4..372edaaafaa1 100644 #include <linux/dma-iommu.h> #include <linux/kernel.h> #include <linux/bits.h> -@@ -3118,6 +3119,27 @@ u32 iommu_sva_get_pasid(struct iommu_sva *handle) +@@ -3119,6 +3120,27 @@ u32 iommu_sva_get_pasid(struct iommu_sva *handle) } EXPORT_SYMBOL_GPL(iommu_sva_get_pasid); @@ -1485,33 +1452,6 @@ index 3303d707bab4..372edaaafaa1 100644 /* * Changes the default domain of an iommu group that has *only* one device * -diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c -index d78e436fa8b5..b064d3137e46 100644 ---- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c -@@ -2490,7 +2490,7 @@ static int iwl_mvm_check_running_scans(struct iwl_mvm *mvm, int type) - return -EIO; - } - --#define SCAN_TIMEOUT 20000 -+#define SCAN_TIMEOUT 30000 - - void iwl_mvm_scan_timeout_wk(struct work_struct *work) - { -diff --git a/drivers/net/wireless/marvell/mwifiex/usb.c b/drivers/net/wireless/marvell/mwifiex/usb.c -index 9736aa0ab7fd..8f01fcbe9396 100644 ---- a/drivers/net/wireless/marvell/mwifiex/usb.c -+++ b/drivers/net/wireless/marvell/mwifiex/usb.c -@@ -130,7 +130,8 @@ static int mwifiex_usb_recv(struct mwifiex_adapter *adapter, - default: - mwifiex_dbg(adapter, ERROR, - "unknown recv_type %#x\n", recv_type); -- return -1; -+ ret = -1; -+ goto exit_restore_skb; - } - break; - case MWIFIEX_USB_EP_DATA: diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index f8dd664b2eda..0ff9ea8340e4 100644 --- a/drivers/nvme/host/core.c @@ -1648,11 +1588,42 @@ index ed79a6c7e804..961dc67d7261 100644 static inline void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl) { } +diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c +index cc4c2b8a5efd..96132d68be1e 100644 +--- a/drivers/pci/msi.c ++++ b/drivers/pci/msi.c +@@ -721,6 +721,9 @@ static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries, + goto out_disable; + } + ++ /* Ensure that all table entries are masked. */ ++ msix_mask_all(base, tsize); ++ + ret = msix_setup_entries(dev, base, entries, nvec, affd); + if (ret) + goto out_disable; +@@ -747,16 +750,6 @@ static int msix_capability_init(struct pci_dev *dev, struct msix_entry *entries, + /* Set MSI-X enabled bits and unmask the function */ + pci_intx_for_msi(dev, 0); + dev->msix_enabled = 1; +- +- /* +- * Ensure that all table entries are masked to prevent +- * stale entries from firing in a crash kernel. +- * +- * Done late to deal with a broken Marvell NVME device +- * which takes the MSI-X mask bits into account even +- * when MSI-X is disabled, which prevents MSI delivery. +- */ +- msix_mask_all(base, tsize); + pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0); + + pcibios_free_irq(dev); diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 208fa03acdda..88cfaa8ac3b3 100644 +index 0663762ea69d..3f1215e8c5b2 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c -@@ -4269,6 +4269,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, +@@ -4272,6 +4272,30 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9000, DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_BROADCOM, 0x9084, quirk_bridge_cavm_thrx2_pcie_root); @@ -1702,10 +1673,10 @@ index 3dc055ce6e61..bb56640eb31f 100644 static inline bool tpacpi_is_led_restricted(const unsigned int led) { diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index 3bc4a86c3d0a..e346da4f58f2 100644 +index ac6c5ccfe1cb..ec784479eece 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c -@@ -5666,6 +5666,13 @@ static void hub_event(struct work_struct *work) +@@ -5669,6 +5669,13 @@ static void hub_event(struct work_struct *work) (u16) hub->change_bits[0], (u16) hub->event_bits[0]); |