[PATCH] Don't pass boot parameters to argv_init[]

The boot cmdline is parsed in parse_early_param() and
parse_args(,unknown_bootoption).

And __setup() is used in obsolete_checksetup().

	start_kernel()
		-> parse_args()
			-> unknown_bootoption()
				-> obsolete_checksetup()

If __setup()'s callback (->setup_func()) returns 1 in
obsolete_checksetup(), obsolete_checksetup() thinks a parameter was
handled.

If ->setup_func() returns 0, obsolete_checksetup() tries other
->setup_func().  If all ->setup_func() that matched a parameter returns 0,
a parameter is seted to argv_init[].

Then, when runing /sbin/init or init=app, argv_init[] is passed to the app.
If the app doesn't ignore those arguments, it will warning and exit.

This patch fixes a wrong usage of it, however fixes obvious one only.

Signed-off-by: OGAWA Hirofumi <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
OGAWA Hirofumi 2006-03-31 02:30:33 -08:00 • committed by Linus Torvalds
commit 9b41046cd0
32 changed files with 59 additions and 58 deletions

View file

@ -466,7 +466,7 @@ static int __init fb_console_setup(char *this_opt)
int i, j;
if (!this_opt || !*this_opt)
return 0;
return 1;
while ((options = strsep(&this_opt, ",")) != NULL) {
if (!strncmp(options, "font:", 5))
@ -481,10 +481,10 @@ static int __init fb_console_setup(char *this_opt)
options++;
}
if (*options != ',')
return 0;
return 1;
options++;
} else
return 0;
return 1;
}
if (!strncmp(options, "map:", 4)) {
@ -496,7 +496,7 @@ static int __init fb_console_setup(char *this_opt)
con2fb_map_boot[i] =
(options[j++]-'0') % FB_MAX;
}
return 0;
return 1;
}
if (!strncmp(options, "vc:", 3)) {
@ -518,7 +518,7 @@ static int __init fb_console_setup(char *this_opt)
rotate = 0;
}
}
return 0;
return 1;
}
__setup("fbcon=", fb_console_setup);

View file

@ -275,7 +275,7 @@ static int __init sti_setup(char *str)
if (str)
strlcpy (default_sti_path, str, sizeof (default_sti_path));
return 0;
return 1;
}
/* Assuming the machine has multiple STI consoles (=graphic cards) which
@ -321,7 +321,7 @@ static int __init sti_font_setup(char *str)
i++;
}
return 0;
return 1;
}
/* The optional linux kernel parameter "sti_font" defines which font

View file

@ -1588,7 +1588,7 @@ static int __init video_setup(char *options)
}
}
return 0;
return 1;
}
__setup("video=", video_setup);
#endif

View file

@ -1378,7 +1378,7 @@ stifb_setup(char *options)
int i;
if (!options || !*options)
return 0;
return 1;
if (strncmp(options, "off", 3) == 0) {
stifb_disabled = 1;
@ -1393,7 +1393,7 @@ stifb_setup(char *options)
stifb_bpp_pref[i] = simple_strtoul(options, &options, 10);
}
}
return 0;
return 1;
}
__setup("stifb=", stifb_setup);