Call kstate_save_state() to serialize all the required data
into the kstate data stream.

Signed-off-by: Andrey Ryabinin <a...@yandex-team.com>
---
 kernel/kexec_core.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
index 5d001b7a9e44..7dcdaee14bfa 100644
--- a/kernel/kexec_core.c
+++ b/kernel/kexec_core.c
@@ -1017,11 +1017,14 @@ int kernel_kexec(void)
                error = -EINVAL;
                goto Unlock;
        }
+       error = kstate_save_state();
+       if (error)
+               goto Unlock;
 
        if (kexec_late_load(kexec_image)) {
                error = kexec_file_load_segments(kexec_image);
                if (error)
-                       goto Unlock;
+                       goto Free_kstate;
        }
 
 #ifdef CONFIG_KEXEC_JUMP
@@ -1104,6 +1107,8 @@ int kernel_kexec(void)
        }
 #endif
 
+ Free_kstate:
+       free_kstate_stream();
  Unlock:
        kexec_unlock();
        return error;
-- 
2.45.3


Reply via email to