]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop broken 6.1 and 5.15 efi patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Mar 2025 17:49:31 +0000 (18:49 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Mar 2025 17:49:31 +0000 (18:49 +0100)
queue-5.15/efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch [deleted file]
queue-5.15/series
queue-6.1/efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch [deleted file]
queue-6.1/series

diff --git a/queue-5.15/efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch b/queue-5.15/efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch
deleted file mode 100644 (file)
index 0a60790..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From 64c78128dd17f106729e5ffc7601597f8c9b75e3 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Feb 2025 15:18:39 -0500
-Subject: efi: Don't map the entire mokvar table to determine its size
-
-From: Peter Jones <pjones@redhat.com>
-
-[ Upstream commit 2b90e7ace79774a3540ce569e000388f8d22c9e0 ]
-
-Currently, when validating the mokvar table, we (re)map the entire table
-on each iteration of the loop, adding space as we discover new entries.
-If the table grows over a certain size, this fails due to limitations of
-early_memmap(), and we get a failure and traceback:
-
-  ------------[ cut here ]------------
-  WARNING: CPU: 0 PID: 0 at mm/early_ioremap.c:139 __early_ioremap+0xef/0x220
-  ...
-  Call Trace:
-   <TASK>
-   ? __early_ioremap+0xef/0x220
-   ? __warn.cold+0x93/0xfa
-   ? __early_ioremap+0xef/0x220
-   ? report_bug+0xff/0x140
-   ? early_fixup_exception+0x5d/0xb0
-   ? early_idt_handler_common+0x2f/0x3a
-   ? __early_ioremap+0xef/0x220
-   ? efi_mokvar_table_init+0xce/0x1d0
-   ? setup_arch+0x864/0xc10
-   ? start_kernel+0x6b/0xa10
-   ? x86_64_start_reservations+0x24/0x30
-   ? x86_64_start_kernel+0xed/0xf0
-   ? common_startup_64+0x13e/0x141
-   </TASK>
-  ---[ end trace 0000000000000000 ]---
-  mokvar: Failed to map EFI MOKvar config table pa=0x7c4c3000, size=265187.
-
-Mapping the entire structure isn't actually necessary, as we don't ever
-need more than one entry header mapped at once.
-
-Changes efi_mokvar_table_init() to only map each entry header, not the
-entire table, when determining the table size.  Since we're not mapping
-any data past the variable name, it also changes the code to enforce
-that each variable name is NUL terminated, rather than attempting to
-verify it in place.
-
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Peter Jones <pjones@redhat.com>
-Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/firmware/efi/mokvar-table.c | 41 +++++++++--------------------
- 1 file changed, 13 insertions(+), 28 deletions(-)
-
-diff --git a/drivers/firmware/efi/mokvar-table.c b/drivers/firmware/efi/mokvar-table.c
-index 38722d2009e20..3ac37f8cfd680 100644
---- a/drivers/firmware/efi/mokvar-table.c
-+++ b/drivers/firmware/efi/mokvar-table.c
-@@ -103,7 +103,6 @@ void __init efi_mokvar_table_init(void)
-       void *va = NULL;
-       unsigned long cur_offset = 0;
-       unsigned long offset_limit;
--      unsigned long map_size = 0;
-       unsigned long map_size_needed = 0;
-       unsigned long size;
-       struct efi_mokvar_table_entry *mokvar_entry;
-@@ -134,48 +133,34 @@ void __init efi_mokvar_table_init(void)
-        */
-       err = -EINVAL;
-       while (cur_offset + sizeof(*mokvar_entry) <= offset_limit) {
--              mokvar_entry = va + cur_offset;
--              map_size_needed = cur_offset + sizeof(*mokvar_entry);
--              if (map_size_needed > map_size) {
--                      if (va)
--                              early_memunmap(va, map_size);
--                      /*
--                       * Map a little more than the fixed size entry
--                       * header, anticipating some data. It's safe to
--                       * do so as long as we stay within current memory
--                       * descriptor.
--                       */
--                      map_size = min(map_size_needed + 2*EFI_PAGE_SIZE,
--                                     offset_limit);
--                      va = early_memremap(efi.mokvar_table, map_size);
--                      if (!va) {
--                              pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%lu.\n",
--                                     efi.mokvar_table, map_size);
--                              return;
--                      }
--                      mokvar_entry = va + cur_offset;
-+              if (va)
-+                      early_memunmap(va, sizeof(*mokvar_entry));
-+              va = early_memremap(efi.mokvar_table + cur_offset, sizeof(*mokvar_entry));
-+              if (!va) {
-+                      pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%zu.\n",
-+                             efi.mokvar_table + cur_offset, sizeof(*mokvar_entry));
-+                      return;
-               }
-+              mokvar_entry = va;
-               /* Check for last sentinel entry */
-               if (mokvar_entry->name[0] == '\0') {
-                       if (mokvar_entry->data_size != 0)
-                               break;
-                       err = 0;
-+                      map_size_needed = cur_offset + sizeof(*mokvar_entry);
-                       break;
-               }
--              /* Sanity check that the name is null terminated */
--              size = strnlen(mokvar_entry->name,
--                             sizeof(mokvar_entry->name));
--              if (size >= sizeof(mokvar_entry->name))
--                      break;
-+              /* Enforce that the name is NUL terminated */
-+              mokvar_entry->name[sizeof(mokvar_entry->name) - 1] = '\0';
-               /* Advance to the next entry */
--              cur_offset = map_size_needed + mokvar_entry->data_size;
-+              cur_offset += sizeof(*mokvar_entry) + mokvar_entry->data_size;
-       }
-       if (va)
--              early_memunmap(va, map_size);
-+              early_memunmap(va, sizeof(*mokvar_entry));
-       if (err) {
-               pr_err("EFI MOKvar config table is not valid\n");
-               return;
--- 
-2.39.5
-
index 76829d3fb402231b58524a94df899d285278bafe..8cd59602276a8f184fb3103a308b8bca563de7fa 100644 (file)
@@ -539,7 +539,6 @@ riscv-cacheinfo-remove-the-useless-input-parameter-n.patch
 riscv-cacheinfo-initialize-cacheinfo-s-level-and-typ.patch
 riscv-prevent-a-bad-reference-count-on-cpu-nodes.patch
 riscv-cacheinfo-use-of_property_present-for-non-bool.patch
-efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch
 revert-of-reserved-memory-fix-using-wrong-number-of-cells-to-get-property-alignment.patch
 hid-appleir-fix-potential-null-dereference-at-raw-event-handle.patch
 gpio-rcar-use-raw_spinlock-to-protect-register-access.patch
diff --git a/queue-6.1/efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch b/queue-6.1/efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch
deleted file mode 100644 (file)
index 5ace6ea..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From 01cbf34ee494caf36afd1dba712151936025ff44 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Wed, 26 Feb 2025 15:18:39 -0500
-Subject: efi: Don't map the entire mokvar table to determine its size
-
-From: Peter Jones <pjones@redhat.com>
-
-[ Upstream commit 2b90e7ace79774a3540ce569e000388f8d22c9e0 ]
-
-Currently, when validating the mokvar table, we (re)map the entire table
-on each iteration of the loop, adding space as we discover new entries.
-If the table grows over a certain size, this fails due to limitations of
-early_memmap(), and we get a failure and traceback:
-
-  ------------[ cut here ]------------
-  WARNING: CPU: 0 PID: 0 at mm/early_ioremap.c:139 __early_ioremap+0xef/0x220
-  ...
-  Call Trace:
-   <TASK>
-   ? __early_ioremap+0xef/0x220
-   ? __warn.cold+0x93/0xfa
-   ? __early_ioremap+0xef/0x220
-   ? report_bug+0xff/0x140
-   ? early_fixup_exception+0x5d/0xb0
-   ? early_idt_handler_common+0x2f/0x3a
-   ? __early_ioremap+0xef/0x220
-   ? efi_mokvar_table_init+0xce/0x1d0
-   ? setup_arch+0x864/0xc10
-   ? start_kernel+0x6b/0xa10
-   ? x86_64_start_reservations+0x24/0x30
-   ? x86_64_start_kernel+0xed/0xf0
-   ? common_startup_64+0x13e/0x141
-   </TASK>
-  ---[ end trace 0000000000000000 ]---
-  mokvar: Failed to map EFI MOKvar config table pa=0x7c4c3000, size=265187.
-
-Mapping the entire structure isn't actually necessary, as we don't ever
-need more than one entry header mapped at once.
-
-Changes efi_mokvar_table_init() to only map each entry header, not the
-entire table, when determining the table size.  Since we're not mapping
-any data past the variable name, it also changes the code to enforce
-that each variable name is NUL terminated, rather than attempting to
-verify it in place.
-
-Cc: <stable@vger.kernel.org>
-Signed-off-by: Peter Jones <pjones@redhat.com>
-Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/firmware/efi/mokvar-table.c | 41 +++++++++--------------------
- 1 file changed, 13 insertions(+), 28 deletions(-)
-
-diff --git a/drivers/firmware/efi/mokvar-table.c b/drivers/firmware/efi/mokvar-table.c
-index 5ed0602c2f75f..d865cb1dbaad1 100644
---- a/drivers/firmware/efi/mokvar-table.c
-+++ b/drivers/firmware/efi/mokvar-table.c
-@@ -103,7 +103,6 @@ void __init efi_mokvar_table_init(void)
-       void *va = NULL;
-       unsigned long cur_offset = 0;
-       unsigned long offset_limit;
--      unsigned long map_size = 0;
-       unsigned long map_size_needed = 0;
-       unsigned long size;
-       struct efi_mokvar_table_entry *mokvar_entry;
-@@ -134,48 +133,34 @@ void __init efi_mokvar_table_init(void)
-        */
-       err = -EINVAL;
-       while (cur_offset + sizeof(*mokvar_entry) <= offset_limit) {
--              mokvar_entry = va + cur_offset;
--              map_size_needed = cur_offset + sizeof(*mokvar_entry);
--              if (map_size_needed > map_size) {
--                      if (va)
--                              early_memunmap(va, map_size);
--                      /*
--                       * Map a little more than the fixed size entry
--                       * header, anticipating some data. It's safe to
--                       * do so as long as we stay within current memory
--                       * descriptor.
--                       */
--                      map_size = min(map_size_needed + 2*EFI_PAGE_SIZE,
--                                     offset_limit);
--                      va = early_memremap(efi.mokvar_table, map_size);
--                      if (!va) {
--                              pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%lu.\n",
--                                     efi.mokvar_table, map_size);
--                              return;
--                      }
--                      mokvar_entry = va + cur_offset;
-+              if (va)
-+                      early_memunmap(va, sizeof(*mokvar_entry));
-+              va = early_memremap(efi.mokvar_table + cur_offset, sizeof(*mokvar_entry));
-+              if (!va) {
-+                      pr_err("Failed to map EFI MOKvar config table pa=0x%lx, size=%zu.\n",
-+                             efi.mokvar_table + cur_offset, sizeof(*mokvar_entry));
-+                      return;
-               }
-+              mokvar_entry = va;
-               /* Check for last sentinel entry */
-               if (mokvar_entry->name[0] == '\0') {
-                       if (mokvar_entry->data_size != 0)
-                               break;
-                       err = 0;
-+                      map_size_needed = cur_offset + sizeof(*mokvar_entry);
-                       break;
-               }
--              /* Sanity check that the name is null terminated */
--              size = strnlen(mokvar_entry->name,
--                             sizeof(mokvar_entry->name));
--              if (size >= sizeof(mokvar_entry->name))
--                      break;
-+              /* Enforce that the name is NUL terminated */
-+              mokvar_entry->name[sizeof(mokvar_entry->name) - 1] = '\0';
-               /* Advance to the next entry */
--              cur_offset = map_size_needed + mokvar_entry->data_size;
-+              cur_offset += sizeof(*mokvar_entry) + mokvar_entry->data_size;
-       }
-       if (va)
--              early_memunmap(va, map_size);
-+              early_memunmap(va, sizeof(*mokvar_entry));
-       if (err) {
-               pr_err("EFI MOKvar config table is not valid\n");
-               return;
--- 
-2.39.5
-
index 478e81d164396c00a43ecd5812699c6b2cdd79db..dd8a69735007459d1ebab8753f58134a8e958048 100644 (file)
@@ -4,7 +4,6 @@ drm-amdgpu-check-extended-configuration-space-regist.patch
 drm-amdgpu-disable-bar-resize-on-dell-g5-se.patch
 cpuidle-intel_idle-fix-cpuidle_flag_ibrs.patch
 x86-speculation-add-__update_spec_ctrl-helper.patch
-efi-don-t-map-the-entire-mokvar-table-to-determine-i.patch
 x86-amd_nb-use-rdmsr_safe-in-amd_get_mmconfig_range.patch
 revert-of-reserved-memory-fix-using-wrong-number-of-cells-to-get-property-alignment.patch
 loongarch-convert-unreachable-to-bug.patch