Message ID | 20181022093720.21426-2-fanc.fnst@cn.fujitsu.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | x86/boot/KASLR: Parse ACPI table and limit kaslr in immovable memory | expand |
On Mon, Oct 22, 2018 at 05:37:14PM +0800, Chao Fan wrote: > Now, there are cmdline_find_option() and cmdline_find_option_bool() in > cmdline.c. Sometimes, when detecting such as whether 'acpi=off' is > in cmdline, we need to cmdline_find_option() first, then compare > the argument. Now splite the operation as a independent function. > Introduce a new function cmdline_find_option_arg() to detect whether > option is in command line and the value is arg. For all future commit messages you write: Use passive tone in your commit message: no "we", etc. Also, pls read section "2) Describe your changes" in Documentation/process/submitting-patches.rst. > Signed-off-by: Chao Fan <fanc.fnst@cn.fujitsu.com> > --- > arch/x86/boot/compressed/cmdline.c | 15 +++++++++++++++ > arch/x86/boot/compressed/misc.h | 1 + > 2 files changed, 16 insertions(+) > > diff --git a/arch/x86/boot/compressed/cmdline.c b/arch/x86/boot/compressed/cmdline.c > index af6cda0b7900..61118c69feb8 100644 > --- a/arch/x86/boot/compressed/cmdline.c > +++ b/arch/x86/boot/compressed/cmdline.c > @@ -1,5 +1,7 @@ > // SPDX-License-Identifier: GPL-2.0 > #include "misc.h" > +#define STATIC > +#include <linux/decompress/mm.h> > > #if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE || CONFIG_X86_5LEVEL > > @@ -30,5 +32,18 @@ int cmdline_find_option_bool(const char *option) > { > return __cmdline_find_option_bool(get_cmd_line_ptr(), option); > } > +bool cmdline_find_option_arg(const char *option, const char *arg, int argsize) > +{ > + char *buffer = malloc(argsize+1); > + bool find = false; > + int ret; > + > + ret = cmdline_find_option(option, buffer, argsize+1); > + if (ret == argsize && !strncmp(buffer, arg, argsize)) > + find = true; > + > + free(buffer); > + return find; > +} I don't think such wrapper is needed. Simply calling cmdline_find_option() and then examining the buffer - like other call sites do - is perfectly fine. Thx.
On Tue, Nov 06, 2018 at 01:22:53PM +0100, Borislav Petkov wrote: >On Mon, Oct 22, 2018 at 05:37:14PM +0800, Chao Fan wrote: >> Now, there are cmdline_find_option() and cmdline_find_option_bool() in >> cmdline.c. Sometimes, when detecting such as whether 'acpi=off' is >> in cmdline, we need to cmdline_find_option() first, then compare >> the argument. Now splite the operation as a independent function. >> Introduce a new function cmdline_find_option_arg() to detect whether >> option is in command line and the value is arg. > >For all future commit messages you write: > >Use passive tone in your commit message: no "we", etc. Got it. > >Also, pls read section "2) Describe your changes" in >Documentation/process/submitting-patches.rst. OK. > >> Signed-off-by: Chao Fan <fanc.fnst@cn.fujitsu.com> >> --- >> arch/x86/boot/compressed/cmdline.c | 15 +++++++++++++++ >> arch/x86/boot/compressed/misc.h | 1 + >> 2 files changed, 16 insertions(+) >> >> diff --git a/arch/x86/boot/compressed/cmdline.c b/arch/x86/boot/compressed/cmdline.c >> index af6cda0b7900..61118c69feb8 100644 >> --- a/arch/x86/boot/compressed/cmdline.c >> +++ b/arch/x86/boot/compressed/cmdline.c >> @@ -1,5 +1,7 @@ >> // SPDX-License-Identifier: GPL-2.0 >> #include "misc.h" >> +#define STATIC >> +#include <linux/decompress/mm.h> >> >> #if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE || CONFIG_X86_5LEVEL >> >> @@ -30,5 +32,18 @@ int cmdline_find_option_bool(const char *option) >> { >> return __cmdline_find_option_bool(get_cmd_line_ptr(), option); >> } >> +bool cmdline_find_option_arg(const char *option, const char *arg, int argsize) >> +{ >> + char *buffer = malloc(argsize+1); >> + bool find = false; >> + int ret; >> + >> + ret = cmdline_find_option(option, buffer, argsize+1); >> + if (ret == argsize && !strncmp(buffer, arg, argsize)) >> + find = true; >> + >> + free(buffer); >> + return find; >> +} > >I don't think such wrapper is needed. Simply calling >cmdline_find_option() and then examining the buffer - like other call >sites do - is perfectly fine. I will change it. Thanks, Chao Fan > >Thx. > >-- >Regards/Gruss, > Boris. > >Good mailing practices for 400: avoid top-posting and trim the reply. > >
diff --git a/arch/x86/boot/compressed/cmdline.c b/arch/x86/boot/compressed/cmdline.c index af6cda0b7900..61118c69feb8 100644 --- a/arch/x86/boot/compressed/cmdline.c +++ b/arch/x86/boot/compressed/cmdline.c @@ -1,5 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include "misc.h" +#define STATIC +#include <linux/decompress/mm.h> #if CONFIG_EARLY_PRINTK || CONFIG_RANDOMIZE_BASE || CONFIG_X86_5LEVEL @@ -30,5 +32,18 @@ int cmdline_find_option_bool(const char *option) { return __cmdline_find_option_bool(get_cmd_line_ptr(), option); } +bool cmdline_find_option_arg(const char *option, const char *arg, int argsize) +{ + char *buffer = malloc(argsize+1); + bool find = false; + int ret; + + ret = cmdline_find_option(option, buffer, argsize+1); + if (ret == argsize && !strncmp(buffer, arg, argsize)) + find = true; + + free(buffer); + return find; +} #endif diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h index a1d5918765f3..008fdc47a29c 100644 --- a/arch/x86/boot/compressed/misc.h +++ b/arch/x86/boot/compressed/misc.h @@ -67,6 +67,7 @@ static inline void debug_puthex(const char *s) /* cmdline.c */ int cmdline_find_option(const char *option, char *buffer, int bufsize); int cmdline_find_option_bool(const char *option); +bool cmdline_find_option_arg(const char *option, const char *arg, int argsize); #endif
Now, there are cmdline_find_option() and cmdline_find_option_bool() in cmdline.c. Sometimes, when detecting such as whether 'acpi=off' is in cmdline, we need to cmdline_find_option() first, then compare the argument. Now splite the operation as a independent function. Introduce a new function cmdline_find_option_arg() to detect whether option is in command line and the value is arg. Signed-off-by: Chao Fan <fanc.fnst@cn.fujitsu.com> --- arch/x86/boot/compressed/cmdline.c | 15 +++++++++++++++ arch/x86/boot/compressed/misc.h | 1 + 2 files changed, 16 insertions(+)