[PATCH 4/5] x86: pass in size to early cmdline parsing

Dave Hansen
2015-12-22T22:52:46Z

From: Dave Hansen <dave.hansen@linux.intel.com>

We will use this in a few patches to implement tests for early
parsing.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org
Cc: fenghua.yu@intel.com
Cc: yu-cheng.yu@intel.com
---

b/arch/x86/lib/cmdline.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)

diff -puN arch/x86/lib/cmdline.c~pass-in-cmdline-size arch/x86/lib/cmdline.c
--- a/arch/x86/lib/cmdline.c~pass-in-cmdline-size 2015-12-22 11:56:59.859204417 -0800
+++ b/arch/x86/lib/cmdline.c 2015-12-22 11:56:59.862204552 -0800
@@ -25,7 +25,8 @@ static inline int myisspace(u8 c)
* as an entire word in @cmdline. For instance, if @option="car"
* then a cmdline which contains "cart" will not match.
*/
-int cmdline_find_option_bool(const char *cmdline, const char *option)
+static int __cmdline_find_option_bool(const char *cmdline,
+ int max_cmdline_size, const char *option)
{
char c;
int pos = 0, wstart = 0;
@@ -43,7 +44,7 @@ int cmdline_find_option_bool(const char
* This 'pos' check ensures we do not overrun
* a non-NULL-terminated 'cmdline'
*/
- while (pos < COMMAND_LINE_SIZE) {
+ while (pos < max_cmdline_size) {
c = *(char *)cmdline++;
pos++;

@@ -101,3 +102,9 @@ int cmdline_find_option_bool(const char

return 0; /* Buffer overrun */
}
+
+int cmdline_find_option_bool(const char *cmdline, const char *option)
+{
+ return __cmdline_find_option_bool(cmdline, COMMAND_LINE_SIZE,
+ option);
+}
_