update ext_cmd_line_ptr for bzImage from protocal 2.12
that could have command line above 4g.

-v2: update ext_... handling to the way that Eric likes.

Signed-off-by: Yinghai Lu <[email protected]>
---
 kexec/arch/i386/x86-linux-setup.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/kexec/arch/i386/x86-linux-setup.c 
b/kexec/arch/i386/x86-linux-setup.c
index 3c31f64..d12dab1 100644
--- a/kexec/arch/i386/x86-linux-setup.c
+++ b/kexec/arch/i386/x86-linux-setup.c
@@ -103,7 +103,12 @@ void setup_linux_bootloader_parameters(
                /* setup_move_size */
        /* } */
        if (real_mode->protocol_version >= 0x0202) {
-               real_mode->cmd_line_ptr = real_mode_base + cmdline_offset;
+               unsigned long cmd_line_ptr = real_mode_base + cmdline_offset;
+
+               real_mode->cmd_line_ptr = cmd_line_ptr & 0xffffffffUL;
+               if ((real_mode->protocol_version >= 0x020c) &&
+                   ((cmd_line_ptr & 0xffffffffUL) != cmd_line_ptr))
+                       real_mode->ext_cmd_line_ptr = cmd_line_ptr >> 32;
        }
 
        /* Fill in the command line */
-- 
1.7.7


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to