On 06/28/2012 01:04 PM, Thomas Renninger wrote: > On Wednesday, June 27, 2012 06:16:33 PM Srivatsa S. Bhat wrote: >> On 06/27/2012 02:37 PM, Daniel Lezcano wrote: >>> When the system is booted with some cpus offline, the idle >>> driver is not initialized. When a cpu is set online, the >>> acpi code call the intel idle init function. Unfortunately >>> this code introduce a dependency between intel_idle and acpi. >>> >>> This patch is intended to remove this dependency by using the >>> notifier of intel_idle. In order to make it work, the notifier >>> must be initialized in the right order, acpi then intel_idle. >>> This is done in the Makefile. >> >> There is a much better way of doing this. See below. >> >>> This patch has the benefit of >>> encapsulating the intel_idle driver and remove some exported >>> functions. >>> >> >> Nice :) >> >>> Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> >>> --- >>> drivers/Makefile | 3 ++- >>> drivers/acpi/processor_driver.c | 7 ------- >>> drivers/idle/intel_idle.c | 22 ++++++++++++++-------- >>> include/linux/cpuidle.h | 7 ------- >>> 4 files changed, 16 insertions(+), 23 deletions(-) >>> >>> diff --git a/drivers/Makefile b/drivers/Makefile >>> index 2ba29ff..a2454b8 100644 >>> --- a/drivers/Makefile >>> +++ b/drivers/Makefile >>> @@ -12,8 +12,9 @@ obj-$(CONFIG_PCI) += pci/ >>> obj-$(CONFIG_PARISC) += parisc/ >>> obj-$(CONFIG_RAPIDIO) += rapidio/ >>> obj-y += video/ >>> -obj-y += idle/ >>> +# acpi must come before idle for initialization >>> obj-$(CONFIG_ACPI) += acpi/ >>> +obj-y += idle/ >>> obj-$(CONFIG_SFI) += sfi/ >>> # PnP must come after ACPI since it will eventually need to check if acpi >>> # was used and do nothing if so >> >> OK, so all you are trying to do here is ensure that the intel idle related >> notifier runs _after_ the acpi related one. > I might oversee something, if you have concerns, please point me to it. > If it's all about keeping the order of excuting these functions: > acpi_processor_start(pr) > and > intel_idle_cpu_init() > There should be no need for it. Intel idle is pretty separated. > I digged through the code a bit, and even I couldn't find any reason why there should be a dependency between the two events. Regards, Srivatsa S. Bhat