x86: zimage: Disable interrupts just before booting
authorSimon Glass <sjg@chromium.org>
Sat, 5 Sep 2020 20:50:42 +0000 (14:50 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Fri, 25 Sep 2020 03:27:08 +0000 (11:27 +0800)
At present if an error occurs while setting up the boot, interrupts are
left disabled. Move this call later in the sequence to avoid this problem.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/lib/zimage.c

index ba9eb50..8651dea 100644 (file)
@@ -333,7 +333,6 @@ int do_zboot(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
        struct boot_params *base_ptr;
        char *s;
 
-       disable_interrupts();
        memset(&state, '\0', sizeof(state));
        if (argc >= 2) {
                /* argv[1] holds the address of the bzImage */
@@ -369,6 +368,7 @@ int do_zboot(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
                return -1;
        }
 
+       disable_interrupts();
        /* we assume that the kernel is in place */
        return boot_linux_kernel((ulong)base_ptr, state.load_address, false);
 }