[PATCH 4/6] kexec jump: in sync with hibernation implementation

Pavel Machek pavel at suse.cz
Thu Aug 7 05:22:42 EDT 2008


> Add device_pm_lock() and device_pm_unlock() in kernel_kexec() to be
> in sync with current hibernation implementation.
> 
> Signed-off-by: Huang Ying <ying.huang at intel.com>
> 
> ---
>  kernel/kexec.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> --- a/kernel/kexec.c
> +++ b/kernel/kexec.c
> @@ -1457,6 +1457,7 @@ int kernel_kexec(void)
>  		error = disable_nonboot_cpus();
>  		if (error)
>  			goto Resume_devices;
> +		device_pm_lock();
>  		local_irq_disable();
>  		/* At this point, device_suspend() has been called,
>  		 * but *not* device_power_down(). We *must*
> @@ -1485,6 +1486,7 @@ int kernel_kexec(void)
>  		device_power_up(PMSG_RESTORE);
>   Enable_irqs:
>  		local_irq_enable();
> +		device_pm_unlock();
>  		enable_nonboot_cpus();
>   Resume_devices:
>  		device_resume(PMSG_RESTORE);
> 

Would it be possible to create common function for hibernation and
kexec? Keeping complex stuff like this in sync is ugly.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html



More information about the kexec mailing list