summaryrefslogtreecommitdiffstats
path: root/patch-5.15-redhat.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patch-5.15-redhat.patch')
-rw-r--r--patch-5.15-redhat.patch129
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]);