diff options
Diffstat (limited to 'SOURCES/patch-5.12-redhat.patch')
-rw-r--r-- | SOURCES/patch-5.12-redhat.patch | 102 |
1 files changed, 4 insertions, 98 deletions
diff --git a/SOURCES/patch-5.12-redhat.patch b/SOURCES/patch-5.12-redhat.patch index bad9b2c..3485d76 100644 --- a/SOURCES/patch-5.12-redhat.patch +++ b/SOURCES/patch-5.12-redhat.patch @@ -12,7 +12,6 @@ drivers/acpi/pci_mcfg.c | 7 ++ drivers/acpi/scan.c | 9 ++ drivers/ata/libahci.c | 18 +++ - drivers/bluetooth/btqca.c | 27 +++-- drivers/char/ipmi/ipmi_dmi.c | 15 +++ drivers/char/ipmi/ipmi_msghandler.c | 16 ++- drivers/firmware/efi/Makefile | 1 + @@ -36,13 +35,12 @@ include/linux/security.h | 5 + kernel/crash_core.c | 28 ++++- kernel/module_signing.c | 9 +- - net/can/bcm.c | 6 + security/integrity/platform_certs/load_uefi.c | 6 +- security/lockdown/Kconfig | 13 +++ security/lockdown/lockdown.c | 1 + security/security.c | 6 + security/selinux/hooks.c | 3 +- - 44 files changed, 647 insertions(+), 185 deletions(-) + 42 files changed, 621 insertions(+), 178 deletions(-) diff --git a/Documentation/admin-guide/kdump/kdump.rst b/Documentation/admin-guide/kdump/kdump.rst index 75a9dd98e76e..3ff3291551f9 100644 @@ -67,7 +65,7 @@ index 75a9dd98e76e..3ff3291551f9 100644 Boot into System Kernel diff --git a/Makefile b/Makefile -index 09e1a0967bab..63c53593ee89 100644 +index f1d0775925cc..f9229000f2df 100644 --- a/Makefile +++ b/Makefile @@ -495,6 +495,7 @@ KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE @@ -145,7 +143,7 @@ index 7a21eca498aa..565f143c9858 100644 + return !!ipl_secure_flag; +} diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c -index 5aab59ad5688..c53572b81c37 100644 +index 382d73da134c..f5b2b127e24d 100644 --- a/arch/s390/kernel/setup.c +++ b/arch/s390/kernel/setup.c @@ -49,6 +49,7 @@ @@ -156,7 +154,7 @@ index 5aab59ad5688..c53572b81c37 100644 #include <linux/hugetlb.h> #include <asm/boot_data.h> -@@ -1113,6 +1114,9 @@ void __init setup_arch(char **cmdline_p) +@@ -1114,6 +1115,9 @@ void __init setup_arch(char **cmdline_p) log_component_list(); @@ -342,74 +340,6 @@ index fec2e9754aed..bea4e2973259 100644 /* wait for engine to stop. This could be as long as 500 msec */ tmp = ata_wait_register(ap, port_mmio + PORT_CMD, PORT_CMD_LIST_ON, PORT_CMD_LIST_ON, 1, 500); -diff --git a/drivers/bluetooth/btqca.c b/drivers/bluetooth/btqca.c -index 25114f0d1319..bd71dfc9c974 100644 ---- a/drivers/bluetooth/btqca.c -+++ b/drivers/bluetooth/btqca.c -@@ -183,7 +183,7 @@ int qca_send_pre_shutdown_cmd(struct hci_dev *hdev) - EXPORT_SYMBOL_GPL(qca_send_pre_shutdown_cmd); - - static void qca_tlv_check_data(struct qca_fw_config *config, -- const struct firmware *fw, enum qca_btsoc_type soc_type) -+ u8 *fw_data, enum qca_btsoc_type soc_type) - { - const u8 *data; - u32 type_len; -@@ -194,7 +194,7 @@ static void qca_tlv_check_data(struct qca_fw_config *config, - struct tlv_type_nvm *tlv_nvm; - uint8_t nvm_baud_rate = config->user_baud_rate; - -- tlv = (struct tlv_type_hdr *)fw->data; -+ tlv = (struct tlv_type_hdr *)fw_data; - - type_len = le32_to_cpu(tlv->type_len); - length = (type_len >> 8) & 0x00ffffff; -@@ -390,8 +390,9 @@ static int qca_download_firmware(struct hci_dev *hdev, - enum qca_btsoc_type soc_type) - { - const struct firmware *fw; -+ u8 *data; - const u8 *segment; -- int ret, remain, i = 0; -+ int ret, size, remain, i = 0; - - bt_dev_info(hdev, "QCA Downloading %s", config->fwname); - -@@ -402,10 +403,22 @@ static int qca_download_firmware(struct hci_dev *hdev, - return ret; - } - -- qca_tlv_check_data(config, fw, soc_type); -+ size = fw->size; -+ data = vmalloc(fw->size); -+ if (!data) { -+ bt_dev_err(hdev, "QCA Failed to allocate memory for file: %s", -+ config->fwname); -+ release_firmware(fw); -+ return -ENOMEM; -+ } -+ -+ memcpy(data, fw->data, size); -+ release_firmware(fw); -+ -+ qca_tlv_check_data(config, data, soc_type); - -- segment = fw->data; -- remain = fw->size; -+ segment = data; -+ remain = size; - while (remain > 0) { - int segsize = min(MAX_SIZE_PER_TLV_SEGMENT, remain); - -@@ -435,7 +448,7 @@ static int qca_download_firmware(struct hci_dev *hdev, - ret = qca_inject_cmd_complete_event(hdev); - - out: -- release_firmware(fw); -+ vfree(data); - - return ret; - } diff --git a/drivers/char/ipmi/ipmi_dmi.c b/drivers/char/ipmi/ipmi_dmi.c index bbf7029e224b..cf7faa970dd6 100644 --- a/drivers/char/ipmi/ipmi_dmi.c @@ -1538,30 +1468,6 @@ index 8723ae70ea1f..fb2d773498c2 100644 + } + return ret; } -diff --git a/net/can/bcm.c b/net/can/bcm.c -index f3e4d9528fa3..c67916020e63 100644 ---- a/net/can/bcm.c -+++ b/net/can/bcm.c -@@ -785,6 +785,7 @@ static int bcm_delete_rx_op(struct list_head *ops, struct bcm_msg_head *mh, - bcm_rx_handler, op); - - list_del(&op->list); -+ synchronize_rcu(); - bcm_remove_op(op); - return 1; /* done */ - } -@@ -1533,6 +1534,11 @@ static int bcm_release(struct socket *sock) - REGMASK(op->can_id), - bcm_rx_handler, op); - -+ } -+ -+ synchronize_rcu(); -+ -+ list_for_each_entry_safe(op, next, &bo->rx_ops, list) { - bcm_remove_op(op); - } - diff --git a/security/integrity/platform_certs/load_uefi.c b/security/integrity/platform_certs/load_uefi.c index f290f78c3f30..d3e7ae04f5be 100644 --- a/security/integrity/platform_certs/load_uefi.c |