X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Fkexec.c;h=87b77de03dd33942b29953909aaf5727bb5e2bdd;hb=adddcecf9222aa32938480cc1d03de629fab2a86;hp=55936f9cb251b9eb114d9b827ee478e18a3448b7;hpb=a97b52022a73ec12e43f0b2c7d4bd1f40f89c81d;p=~andy%2Flinux diff --git a/kernel/kexec.c b/kernel/kexec.c index 55936f9cb25..87b77de03dd 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -1532,6 +1533,11 @@ int kernel_kexec(void) local_irq_disable(); /* Suspend system devices */ error = sysdev_suspend(PMSG_FREEZE); + if (!error) { + error = syscore_suspend(); + if (error) + sysdev_resume(); + } if (error) goto Enable_irqs; } else @@ -1546,6 +1552,7 @@ int kernel_kexec(void) #ifdef CONFIG_KEXEC_JUMP if (kexec_image->preserve_context) { + syscore_resume(); sysdev_resume(); Enable_irqs: local_irq_enable();