On Thu, Jan 03, 2013 at 12:02:59PM +0000, Will Deacon wrote: > You need the smp_send_stop call in order to send the cpu_kill (looks like > tegra needs die and then kill). So you really need hotplug support as well > as suspend for this to do much (if not, the secondaries end up spinning > with interrupts disabled which is probably the best we can do anyway). > > We could add SUSPEND as a KEXEC dependency if SMP (we already have HOTPLUG > there) if you like? Or we could look into bringing in the code to do this when KEXEC is enabled - which would mean an amount of restructuring of the Kconfig files. In other words, go from this: config SUSPEND bool "Suspend to RAM and standby" depends on ARCH_SUSPEND_POSSIBLE default y config HIBERNATE_CALLBACKS bool config PM_SLEEP def_bool y depends on SUSPEND || HIBERNATE_CALLBACKS config PM_SLEEP_SMP def_bool y depends on SMP depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE depends on PM_SLEEP select HOTPLUG select HOTPLUG_CPU to: config SUSPEND bool... depends on ARCH_SUSPEND_POSSIBLE default y select PM_SLEEP config HIBERNATE_CALLBACKS bool select PM_SLEEP config PM_SLEEP bool select PM_SLEEP_SMP if SMP && (ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE) config PM_SLEEP_SMP bool select HOTPLUG select HOTPLUG_CPU This means we could have KEXEC select PM_SLEEP_SMP (and maybe PM_SLEEP) as required, rather than bringing in the entire suspend support just to have working kexec. However, how many platforms don't have suspend support enabled?