From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758966AbcAUIsr (ORCPT ); Thu, 21 Jan 2016 03:48:47 -0500 Received: from mail-lb0-f193.google.com ([209.85.217.193]:33061 "EHLO mail-lb0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751528AbcAUIso (ORCPT ); Thu, 21 Jan 2016 03:48:44 -0500 From: Alexander Kuleshov To: Ingo Molnar Cc: Thomas Gleixner , "H . Peter Anvin" , Borislav Petkov , Andy Lutomirski , Jiri Kosina , x86@kernel.org, linux-kernel@vger.kernel.org, Alexander Kuleshov Subject: [PATCH] x86/aslr: use get_cmd_line_ptr() to get command line address Date: Thu, 21 Jan 2016 14:45:09 +0600 Message-Id: <1453365909-4732-1-git-send-email-kuleshovmail@gmail.com> X-Mailer: git-send-email 2.7.0.25.gfc10eb5 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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