Messages in this thread Patch in this message | | | From | Tong Zhang <> | Subject | [PATCH] platform/chrome: cros_ec: honor acpi=off | Date | Tue, 15 Feb 2022 22:26:01 -0800 |
| |
when acpi=off is provided in bootarg, kernel crash with
BUG: kernel NULL pointer dereference, address: 0000000000000018 RIP: 0010:acpi_ns_walk_namespace+0x57/0x280 <TASK> ? acpi_get_devices+0x140/0x140 cros_ec_lpc_init+0x25/0x100
Driver should check if ACPI is disabled before calling acpi_get_devices(), otherwise acpi_walk_namespace() will dereference null pointer since the acpi_gbl_root_node is not initialized. This is a common pattern and should be fixed in ACPI framework to prevent such crash in the future, but since many drivers are already doing explicit check(acpi_disable) we do the same thing here.
Signed-off-by: Tong Zhang <ztong0001@gmail.com> --- drivers/platform/chrome/cros_ec_lpc.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/drivers/platform/chrome/cros_ec_lpc.c b/drivers/platform/chrome/cros_ec_lpc.c index d6306d2a096f..95412a55ed8d 100644 --- a/drivers/platform/chrome/cros_ec_lpc.c +++ b/drivers/platform/chrome/cros_ec_lpc.c @@ -550,6 +550,9 @@ static int __init cros_ec_lpc_init(void) int ret; acpi_status status; + if (acpi_disable) + return -ENODEV; + status = acpi_get_devices(ACPI_DRV_NAME, cros_ec_lpc_parse_device, &cros_ec_lpc_acpi_device_found, NULL); if (ACPI_FAILURE(status)) -- 2.25.1
| |