The cmdline.c provides the get_cmd_line_ptr() accessor for the command line address. In the same time, we get command line address in the mem_avoid_init() in same way. Let's make the get_cmd_line_ptr() non-static and use it in the mem_avoid_init() to get command line address to prevent code duplication.
Signed-off-by: Alexander Kuleshov <kuleshovm...@gmail.com> --- arch/x86/boot/compressed/aslr.c | 3 +-- arch/x86/boot/compressed/cmdline.c | 2 +- arch/x86/boot/compressed/misc.h | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/x86/boot/compressed/aslr.c b/arch/x86/boot/compressed/aslr.c index 6a9b96b..495a617 100644 --- a/arch/x86/boot/compressed/aslr.c +++ b/arch/x86/boot/compressed/aslr.c @@ -160,8 +160,7 @@ static void mem_avoid_init(unsigned long input, unsigned long input_size, mem_avoid[1].size = initrd_size; /* Avoid kernel command line. */ - cmd_line = (u64)real_mode->ext_cmd_line_ptr << 32; - cmd_line |= real_mode->hdr.cmd_line_ptr; + cmd_line = get_cmd_line_ptr(); /* Calculate size of cmd_line. */ ptr = (char *)(unsigned long)cmd_line; for (cmd_line_size = 0; ptr[cmd_line_size++]; ) diff --git a/arch/x86/boot/compressed/cmdline.c b/arch/x86/boot/compressed/cmdline.c index b68e303..6b913e6 100644 --- a/arch/x86/boot/compressed/cmdline.c +++ b/arch/x86/boot/compressed/cmdline.c @@ -13,7 +13,7 @@ static inline char rdfs8(addr_t addr) return *((char *)(fs + addr)); } #include "../cmdline.c" -static unsigned long get_cmd_line_ptr(void) +unsigned long get_cmd_line_ptr(void) { unsigned long cmd_line_ptr = real_mode->hdr.cmd_line_ptr; diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h index 3783dc3..7956392 100644 --- a/arch/x86/boot/compressed/misc.h +++ b/arch/x86/boot/compressed/misc.h @@ -60,6 +60,7 @@ static inline void debug_puthex(const char *s) #if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE /* cmdline.c */ +unsigned long get_cmd_line_ptr(void); int cmdline_find_option(const char *option, char *buffer, int bufsize); int cmdline_find_option_bool(const char *option); #endif -- 2.7.0.25.gfc10eb5