OSDN Git Service

ACPI: processor: Reorder acpi_processor_driver_init()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 17 Mar 2023 16:52:33 +0000 (17:52 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 22 Mar 2023 14:20:38 +0000 (15:20 +0100)
commitc0e0421a60bf468e88cf569fbd727346b138ed04
tree1e4f5d85ff10108b4afbf18cdd5d2978f7460d64
parente8d018dd0257f744ca50a729e3d042cf2ec9da65
ACPI: processor: Reorder acpi_processor_driver_init()

The cpufreq policy notifier in the ACPI processor driver may as
well be registered before the driver itself, which causes
acpi_processor_cpufreq_init to be true (unless the notifier
registration fails, which is unlikely at that point) when the
ACPI CPU thermal cooling devices are registered, so the
processor_get_max_state() result does not change while
acpi_processor_driver_init() is running.

Change the ordering in acpi_processor_driver_init() accordingly
to prevent the max_state value from remaining 0 permanently for all
ACPI CPU cooling devices due to setting acpi_processor_cpufreq_init
too late.  [Note that processor_get_max_state() may still return
different values at different times after this change, depending on
the cpufreq driver registration time, but that issue needs to be
addressed separately.]

Fixes: a365105c685c("thermal: sysfs: Reuse cdev->max_state")
Reported-by: Wang, Quanxian <quanxian.wang@intel.com>
Link: https://lore.kernel.org/linux-pm/53ec1f06f61c984100868926f282647e57ecfb2d.camel@intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Zhang Rui <rui.zhang@intel.com>
Reviewed-by: Zhang Rui <rui.zhang@intel.com>
drivers/acpi/processor_driver.c