[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20250604023036.99553-1-cuiyunhui@bytedance.com>
Date: Wed, 4 Jun 2025 10:30:36 +0800
From: Yunhui Cui <cuiyunhui@...edance.com>
To: rafael@...nel.org,
lenb@...nel.org,
Pierre.Gondois@....com,
viresh.kumar@...aro.org,
sudeep.holla@....com,
linux-acpi@...r.kernel.org,
linux-kernel@...r.kernel.org
Cc: Yunhui Cui <cuiyunhui@...edance.com>,
Xu Lu <luxu.kernel@...edance.com>
Subject: [PATCH] ACPI: CPPC: Fix panic caused by NULL pointer dereference
With nosmp in cmdline, other CPUs are not brought up, leaving
their cpc_desc_ptr NULL. CPU0's iteration via for_each_possible_cpu()
dereferences these NULL pointers, causing panic.
Panic backtrace:
[ 0.401123] Unable to handle kernel NULL pointer dereference at virtual address 00000000000000b8
...
[ 0.403255] [<ffffffff809a5818>] cppc_allow_fast_switch+0x6a/0xd4
...
Kernel panic - not syncing: Attempted to kill init!
Fixes: 3cc30dd00a58 ("cpufreq: CPPC: Enable fast_switch")
Reported-by: Xu Lu <luxu.kernel@...edance.com>
Signed-off-by: Yunhui Cui <cuiyunhui@...edance.com>
---
drivers/acpi/cppc_acpi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c
index a9ae2fd628630..6b649031808f8 100644
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -476,7 +476,7 @@ bool cppc_allow_fast_switch(void)
struct cpc_desc *cpc_ptr;
int cpu;
- for_each_possible_cpu(cpu) {
+ for_each_present_cpu(cpu) {
cpc_ptr = per_cpu(cpc_desc_ptr, cpu);
desired_reg = &cpc_ptr->cpc_regs[DESIRED_PERF];
if (!CPC_IN_SYSTEM_MEMORY(desired_reg) &&
--
2.39.5
Powered by blists - more mailing lists