mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
ACPI: processor: idle: Fix NULL pointer dereference in hotplug path
A cpuidle_device might fail to register during boot, but the system can continue to run. In such cases, acpi_processor_hotplug() can trigger a NULL pointer dereference when accessing the per-cpu acpi_cpuidle_device. So add NULL pointer check for the per-cpu acpi_cpuidle_device in acpi_processor_hotplug. Signed-off-by: Huisong Li <lihuisong@huawei.com> Link: https://patch.msgid.link/20260403090253.998322-1-lihuisong@huawei.com Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
02c68ed11c
commit
47e6a863a8
|
|
@ -1267,16 +1267,15 @@ static int acpi_processor_get_power_info(struct acpi_processor *pr)
|
|||
|
||||
int acpi_processor_hotplug(struct acpi_processor *pr)
|
||||
{
|
||||
struct cpuidle_device *dev = per_cpu(acpi_cpuidle_device, pr->id);
|
||||
int ret = 0;
|
||||
struct cpuidle_device *dev;
|
||||
|
||||
if (disabled_by_idle_boot_param())
|
||||
return 0;
|
||||
|
||||
if (!pr->flags.power_setup_done)
|
||||
if (!pr->flags.power_setup_done || !dev)
|
||||
return -ENODEV;
|
||||
|
||||
dev = per_cpu(acpi_cpuidle_device, pr->id);
|
||||
cpuidle_pause_and_lock();
|
||||
cpuidle_disable_device(dev);
|
||||
ret = acpi_processor_get_power_info(pr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user