Skip to content

Commit 66e600a

Browse files
committed
Revert "ACPI: processor: idle: Redefine two functions as void"
Revert commit fbd401e ("ACPI: processor: idle: Redefine two functions as void") because it depends on a problematic one. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent 34fa09c commit 66e600a

2 files changed

Lines changed: 24 additions & 21 deletions

File tree

drivers/acpi/processor_idle.c

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1400,52 +1400,55 @@ void acpi_processor_unregister_idle_driver(void)
14001400
cpuidle_unregister_driver(&acpi_idle_driver);
14011401
}
14021402

1403-
void acpi_processor_power_init(struct acpi_processor *pr)
1403+
int acpi_processor_power_init(struct acpi_processor *pr)
14041404
{
1405+
int retval;
14051406
struct cpuidle_device *dev;
14061407

14071408
if (disabled_by_idle_boot_param())
1408-
return;
1409+
return 0;
14091410

14101411
acpi_processor_cstate_first_run_checks();
14111412

14121413
if (!acpi_processor_get_power_info(pr))
14131414
pr->flags.power_setup_done = 1;
14141415

1415-
if (!pr->flags.power)
1416-
return;
1417-
1418-
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
1419-
if (!dev)
1420-
return;
1416+
if (pr->flags.power) {
1417+
dev = kzalloc(sizeof(*dev), GFP_KERNEL);
1418+
if (!dev)
1419+
return -ENOMEM;
1420+
per_cpu(acpi_cpuidle_device, pr->id) = dev;
14211421

1422-
per_cpu(acpi_cpuidle_device, pr->id) = dev;
1422+
acpi_processor_setup_cpuidle_dev(pr, dev);
14231423

1424-
acpi_processor_setup_cpuidle_dev(pr, dev);
1424+
/* Register per-cpu cpuidle_device. Cpuidle driver
1425+
* must already be registered before registering device
1426+
*/
1427+
retval = cpuidle_register_device(dev);
1428+
if (retval) {
14251429

1426-
/*
1427-
* Register a cpuidle device for this CPU. The cpuidle driver using
1428-
* this device is expected to be registered.
1429-
*/
1430-
if (cpuidle_register_device(dev)) {
1431-
per_cpu(acpi_cpuidle_device, pr->id) = NULL;
1432-
kfree(dev);
1430+
per_cpu(acpi_cpuidle_device, pr->id) = NULL;
1431+
kfree(dev);
1432+
return retval;
1433+
}
14331434
}
1435+
return 0;
14341436
}
14351437

1436-
void acpi_processor_power_exit(struct acpi_processor *pr)
1438+
int acpi_processor_power_exit(struct acpi_processor *pr)
14371439
{
14381440
struct cpuidle_device *dev = per_cpu(acpi_cpuidle_device, pr->id);
14391441

14401442
if (disabled_by_idle_boot_param())
1441-
return;
1443+
return 0;
14421444

14431445
if (pr->flags.power) {
14441446
cpuidle_unregister_device(dev);
14451447
kfree(dev);
14461448
}
14471449

14481450
pr->flags.power_setup_done = 0;
1451+
return 0;
14491452
}
14501453

14511454
MODULE_IMPORT_NS("ACPI_PROCESSOR_IDLE");

include/acpi/processor.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -419,8 +419,8 @@ static inline void acpi_processor_throttling_init(void) {}
419419
/* in processor_idle.c */
420420
extern struct cpuidle_driver acpi_idle_driver;
421421
#ifdef CONFIG_ACPI_PROCESSOR_IDLE
422-
void acpi_processor_power_init(struct acpi_processor *pr);
423-
void acpi_processor_power_exit(struct acpi_processor *pr);
422+
int acpi_processor_power_init(struct acpi_processor *pr);
423+
int acpi_processor_power_exit(struct acpi_processor *pr);
424424
int acpi_processor_power_state_has_changed(struct acpi_processor *pr);
425425
int acpi_processor_hotplug(struct acpi_processor *pr);
426426
void acpi_processor_register_idle_driver(void);

0 commit comments

Comments
 (0)