Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:
"We've got a revert due to one of the recent CCA commits breaking ACPI
firmware-based error reporting, a fix for a hard-lockup introduced by
a prior fix affecting non-default (CONFIG_EXPERT) configurations and
another ACPI fix for systems using MMIO-based timers.

Other than that, we're looking pretty good.

- Avoid hardlockup when CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=n

- Fix regression in APEI/GHES error handling

- Fix MMIO timers when probed via ACPI"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64: proton-pack: Fix hard lockup when !MITIGATE_SPECTRE_BRANCH_HISTORY
ACPI: GTDT: Correctly number platform devices for MMIO timers
Revert "arm64: acpi: Enable ACPI CCEL support"

+4 -12
-10
arch/arm64/kernel/acpi.c
··· 351 351 * as long as we take care not to create a writable 352 352 * mapping for executable code. 353 353 */ 354 - fallthrough; 355 - 356 - case EFI_ACPI_MEMORY_NVS: 357 - /* 358 - * ACPI NVS marks an area reserved for use by the 359 - * firmware, even after exiting the boot service. 360 - * This may be used by the firmware for sharing dynamic 361 - * tables/data (e.g., ACPI CCEL) with the OS. Map it 362 - * as read-only. 363 - */ 364 354 prot = PAGE_KERNEL_RO; 365 355 break; 366 356
+2
arch/arm64/kernel/proton-pack.c
··· 1032 1032 1033 1033 if (arm64_get_spectre_v2_state() == SPECTRE_VULNERABLE) { 1034 1034 /* No point mitigating Spectre-BHB alone. */ 1035 + } else if (!IS_ENABLED(CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY)) { 1036 + /* Do nothing */ 1035 1037 } else if (supports_ecbhb(SCOPE_LOCAL_CPU)) { 1036 1038 state = SPECTRE_MITIGATED; 1037 1039 set_bit(BHB_HW, &system_bhb_mitigations);
+2 -2
drivers/acpi/arm64/gtdt.c
··· 430 430 continue; 431 431 432 432 pdev = platform_device_register_data(NULL, "gtdt-arm-mmio-timer", 433 - gwdt_count, &atm, 433 + mmio_timer_count, &atm, 434 434 sizeof(atm)); 435 435 if (IS_ERR(pdev)) { 436 - pr_err("Can't register timer %d\n", gwdt_count); 436 + pr_err("Can't register timer %d\n", mmio_timer_count); 437 437 continue; 438 438 } 439 439