#ifndef _ASM_X86_CMDLINE_H
 #define _ASM_X86_CMDLINE_H
 
+#include <asm/setup.h>
+
+extern char builtin_cmdline[COMMAND_LINE_SIZE];
+
 int cmdline_find_option_bool(const char *cmdline_ptr, const char *option);
 int cmdline_find_option(const char *cmdline_ptr, const char *option,
                        char *buffer, int bufsize);
 
 
 static char __initdata command_line[COMMAND_LINE_SIZE];
 #ifdef CONFIG_CMDLINE_BOOL
-static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE;
+char builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE;
 bool builtin_cmdline_added __ro_after_init;
 #endif
 
 
 
 int cmdline_find_option_bool(const char *cmdline, const char *option)
 {
-       if (IS_ENABLED(CONFIG_CMDLINE_BOOL))
-               WARN_ON_ONCE(!builtin_cmdline_added);
+       int ret;
 
-       return __cmdline_find_option_bool(cmdline, COMMAND_LINE_SIZE, option);
+       ret = __cmdline_find_option_bool(cmdline, COMMAND_LINE_SIZE, option);
+       if (ret > 0)
+               return ret;
+
+       if (IS_ENABLED(CONFIG_CMDLINE_BOOL) && !builtin_cmdline_added)
+               return __cmdline_find_option_bool(builtin_cmdline, COMMAND_LINE_SIZE, option);
+
+       return ret;
 }
 
 int cmdline_find_option(const char *cmdline, const char *option, char *buffer,
                        int bufsize)
 {
-       if (IS_ENABLED(CONFIG_CMDLINE_BOOL))
-               WARN_ON_ONCE(!builtin_cmdline_added);
+       int ret;
+
+       ret = __cmdline_find_option(cmdline, COMMAND_LINE_SIZE, option, buffer, bufsize);
+       if (ret > 0)
+               return ret;
+
+       if (IS_ENABLED(CONFIG_CMDLINE_BOOL) && !builtin_cmdline_added)
+               return __cmdline_find_option(builtin_cmdline, COMMAND_LINE_SIZE, option, buffer, bufsize);
 
-       return __cmdline_find_option(cmdline, COMMAND_LINE_SIZE, option,
-                                    buffer, bufsize);
+       return ret;
 }