]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Revert "arm64: acpi: Enable ACPI CCEL support"
authorWill Deacon <will@kernel.org>
Mon, 24 Nov 2025 13:08:43 +0000 (13:08 +0000)
committerWill Deacon <will@kernel.org>
Mon, 24 Nov 2025 13:14:50 +0000 (13:14 +0000)
This reverts commit d02c2e45b1e7767b177f6854026e4ad0d70b4a4d.

Mauro reports that this breaks APEI notifications on his QEMU setup
because the "reserved for firmware" region still needs to be writable
by Linux in order to signal _back_ to the firmware after processing
the reported error:

  | {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 1
  | ...
  | [Firmware Warn]: GHES: Unhandled processor error type 0x02: cache error
  | Unable to handle kernel write to read-only memory at virtual address ffff800080035018
  | Mem abort info:
  |   ESR = 0x000000009600004f
  |   EC = 0x25: DABT (current EL), IL = 32 bits
  |   SET = 0, FnV = 0
  |   EA = 0, S1PTW = 0
  |   FSC = 0x0f: level 3 permission fault
  | Data abort info:
  |   ISV = 0, ISS = 0x0000004f, ISS2 = 0x00000000
  |   CM = 0, WnR = 1, TnD = 0, TagAccess = 0
  |   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
  | swapper pgtable: 4k pages, 52-bit VAs, pgdp=00000000505d7000
  | pgd=10000000510bc003, p4d=1000000100229403, pud=100000010022a403, pmd=100000010022b403, pte=0060000139b90483
  | Internal error: Oops: 000000009600004f [#1]  SMP

For now, revert the offending commit. We can presumably switch back to
PAGE_KERNEL when bringing this back in the future.

Link: https://lore.kernel.org/r/20251121224611.07efa95a@foz.lan
Reported-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/acpi.c

index c022c1acb8c7d9ea760a0571b6508dcddb3bf806..f1cb2447afc9c1dc8821ece9212c05e79addb147 100644 (file)
@@ -351,16 +351,6 @@ void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size)
                         * as long as we take care not to create a writable
                         * mapping for executable code.
                         */
-                       fallthrough;
-
-               case EFI_ACPI_MEMORY_NVS:
-                       /*
-                        * ACPI NVS marks an area reserved for use by the
-                        * firmware, even after exiting the boot service.
-                        * This may be used by the firmware for sharing dynamic
-                        * tables/data (e.g., ACPI CCEL) with the OS. Map it
-                        * as read-only.
-                        */
                        prot = PAGE_KERNEL_RO;
                        break;