[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH 5.16 0707/1039] ACPI: CPPC: Check present CPUs for determining _CPC is valid
    From: Mario Limonciello <>

    [ Upstream commit 2aeca6bd02776d7f56a49a32be0dd184f204d888 ]

    As this is a static check, it should be based upon what is currently
    present on the system. This makes probeing more deterministic.

    While local APIC flags field (lapic_flags) of cpu core in MADT table is
    0, then the cpu core won't be enabled. In this case, _CPC won't be found
    in this core, and return back to _CPC invalid with walking through
    possible cpus (include disable cpus). This is not expected, so switch to
    check present CPUs instead.

    Reported-by: Jinzhou Su <>
    Signed-off-by: Mario Limonciello <>
    Signed-off-by: Huang Rui <>
    Signed-off-by: Rafael J. Wysocki <>
    Signed-off-by: Sasha Levin <>
    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 b62c87b8ce4a9..12a156d8283e6 100644
    --- a/drivers/acpi/cppc_acpi.c
    +++ b/drivers/acpi/cppc_acpi.c
    @@ -411,7 +411,7 @@ bool acpi_cpc_valid(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);
    if (!cpc_ptr)
    return false;

     \ /
      Last update: 2022-01-24 23:41    [W:2.887 / U:0.088 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site