Skip to content

Commit

Permalink
[PATCH] Don't pass boot parameters to argv_init[]
Browse files Browse the repository at this point in the history
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]>
  • Loading branch information
OGAWAHirofumi authored and Linus Torvalds committed Mar 31, 2006
1 parent 68eef3b commit 9b41046
Show file tree
Hide file tree
Showing 32 changed files with 59 additions and 58 deletions.
2 changes: 1 addition & 1 deletion arch/alpha/kernel/core_marvel.c
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ marvel_specify_io7(char *str)
str = pchar;
} while(*str);

return 0;
return 1;
}
__setup("io7=", marvel_specify_io7);

Expand Down
2 changes: 1 addition & 1 deletion arch/i386/kernel/apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -752,7 +752,7 @@ static int __init apic_set_verbosity(char *str)
printk(KERN_WARNING "APIC Verbosity level %s not recognised"
" use apic=verbose or apic=debug\n", str);

return 0;
return 1;
}

__setup("apic=", apic_set_verbosity);
Expand Down
4 changes: 2 additions & 2 deletions arch/i386/kernel/cpu/mcheck/mce.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,13 @@ void mcheck_init(struct cpuinfo_x86 *c)
static int __init mcheck_disable(char *str)
{
mce_disabled = 1;
return 0;
return 1;
}

static int __init mcheck_enable(char *str)
{
mce_disabled = -1;
return 0;
return 1;
}

__setup("nomce", mcheck_disable);
Expand Down
2 changes: 1 addition & 1 deletion arch/i386/kernel/io_apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -644,7 +644,7 @@ static int __init balanced_irq_init(void)
int __init irqbalance_disable(char *str)
{
irqbalance_disabled = 1;
return 0;
return 1;
}

__setup("noirqbalance", irqbalance_disable);
Expand Down
2 changes: 1 addition & 1 deletion arch/i386/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -1193,6 +1193,6 @@ void __init trap_init(void)
static int __init kstack_setup(char *s)
{
kstack_depth_to_print = simple_strtoul(s, NULL, 0);
return 0;
return 1;
}
__setup("kstack=", kstack_setup);
4 changes: 2 additions & 2 deletions arch/powerpc/kernel/crash_dump.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ static int __init parse_elfcorehdr(char *p)
if (p)
elfcorehdr_addr = memparse(p, &p);

return 0;
return 1;
}
__setup("elfcorehdr=", parse_elfcorehdr);
#endif
Expand All @@ -71,7 +71,7 @@ static int __init parse_savemaxmem(char *p)
if (p)
saved_max_pfn = (memparse(p, &p) >> PAGE_SHIFT) - 1;

return 0;
return 1;
}
__setup("savemaxmem=", parse_savemaxmem);

Expand Down
2 changes: 1 addition & 1 deletion arch/sh/kernel/cpu/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ static int x##_disabled __initdata = 0; \
static int __init x##_setup(char *opts) \
{ \
x##_disabled = 1; \
return 0; \
return 1; \
} \
__setup("no" __stringify(x), x##_setup);

Expand Down
14 changes: 7 additions & 7 deletions arch/x86_64/kernel/apic.c
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ static int __init apic_set_verbosity(char *str)
printk(KERN_WARNING "APIC Verbosity level %s not recognised"
" use apic=verbose or apic=debug", str);

return 0;
return 1;
}

__setup("apic=", apic_set_verbosity);
Expand Down Expand Up @@ -1137,35 +1137,35 @@ int __init APIC_init_uniprocessor (void)
static __init int setup_disableapic(char *str)
{
disable_apic = 1;
return 0;
return 1;
}

static __init int setup_nolapic(char *str)
{
disable_apic = 1;
return 0;
return 1;
}

static __init int setup_noapictimer(char *str)
{
if (str[0] != ' ' && str[0] != 0)
return -1;
return 0;
disable_apic_timer = 1;
return 0;
return 1;
}

static __init int setup_apicmaintimer(char *str)
{
apic_runs_main_timer = 1;
nohpet = 1;
return 0;
return 1;
}
__setup("apicmaintimer", setup_apicmaintimer);

static __init int setup_noapicmaintimer(char *str)
{
apic_runs_main_timer = -1;
return 0;
return 1;
}
__setup("noapicmaintimer", setup_noapicmaintimer);

Expand Down
2 changes: 1 addition & 1 deletion arch/x86_64/kernel/early_printk.c
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ int __init setup_early_printk(char *opt)
char buf[256];

if (early_console_initialized)
return -1;
return 1;

strlcpy(buf,opt,sizeof(buf));
space = strchr(buf, ' ');
Expand Down
4 changes: 2 additions & 2 deletions arch/x86_64/kernel/mce.c
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,7 @@ static struct miscdevice mce_log_device = {
static int __init mcheck_disable(char *str)
{
mce_dont_init = 1;
return 0;
return 1;
}

/* mce=off disables machine check. Note you can reenable it later
Expand All @@ -521,7 +521,7 @@ static int __init mcheck_enable(char *str)
get_option(&str, &tolerant);
else
printk("mce= argument %s ignored. Please use /sys", str);
return 0;
return 1;
}

__setup("nomce", mcheck_disable);
Expand Down
2 changes: 1 addition & 1 deletion arch/x86_64/kernel/pmtimer.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ unsigned int do_gettimeoffset_pm(void)
static int __init nopmtimer_setup(char *s)
{
pmtmr_ioport = 0;
return 0;
return 1;
}

__setup("nopmtimer", nopmtimer_setup);
2 changes: 1 addition & 1 deletion arch/x86_64/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,7 @@ void __init alternative_instructions(void)
static int __init noreplacement_setup(char *s)
{
no_replacement = 1;
return 0;
return 1;
}

__setup("noreplacement", noreplacement_setup);
Expand Down
4 changes: 2 additions & 2 deletions arch/x86_64/kernel/setup64.c
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ int __init nonx_setup(char *str)
do_not_nx = 1;
__supported_pte_mask &= ~_PAGE_NX;
}
return 0;
return 1;
}
__setup("noexec=", nonx_setup); /* parsed early actually */

Expand All @@ -74,7 +74,7 @@ static int __init nonx32_setup(char *str)
force_personality32 &= ~READ_IMPLIES_EXEC;
else if (!strcmp(str, "off"))
force_personality32 |= READ_IMPLIES_EXEC;
return 0;
return 1;
}
__setup("noexec32=", nonx32_setup);

Expand Down
2 changes: 1 addition & 1 deletion arch/x86_64/kernel/smpboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ static void __cpuinit tsc_sync_wait(void)
static __init int notscsync_setup(char *s)
{
notscsync = 1;
return 0;
return 1;
}
__setup("notscsync", notscsync_setup);

Expand Down
4 changes: 2 additions & 2 deletions arch/x86_64/kernel/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -1306,15 +1306,15 @@ irqreturn_t hpet_rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
static int __init nohpet_setup(char *s)
{
nohpet = 1;
return 0;
return 1;
}

__setup("nohpet", nohpet_setup);

int __init notsc_setup(char *s)
{
notsc = 1;
return 0;
return 1;
}

__setup("notsc", notsc_setup);
4 changes: 2 additions & 2 deletions arch/x86_64/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -973,14 +973,14 @@ void __init trap_init(void)
static int __init oops_dummy(char *s)
{
panic_on_oops = 1;
return -1;
return 1;
}
__setup("oops=", oops_dummy);

static int __init kstack_setup(char *s)
{
kstack_depth_to_print = simple_strtoul(s,NULL,0);
return 0;
return 1;
}
__setup("kstack=", kstack_setup);

2 changes: 1 addition & 1 deletion arch/x86_64/mm/fault.c
Original file line number Diff line number Diff line change
Expand Up @@ -623,6 +623,6 @@ void vmalloc_sync_all(void)
static int __init enable_pagefaulttrace(char *str)
{
page_fault_trace = 1;
return 0;
return 1;
}
__setup("pagefaulttrace", enable_pagefaulttrace);
2 changes: 1 addition & 1 deletion block/elevator.c
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ static int __init elevator_setup(char *str)
strcpy(chosen_elevator, "anticipatory");
else
strncpy(chosen_elevator, str, sizeof(chosen_elevator) - 1);
return 0;
return 1;
}

__setup("elevator=", elevator_setup);
Expand Down
4 changes: 2 additions & 2 deletions drivers/acpi/ec.c
Original file line number Diff line number Diff line change
Expand Up @@ -1572,7 +1572,7 @@ static void __exit acpi_ec_exit(void)
static int __init acpi_fake_ecdt_setup(char *str)
{
acpi_fake_ecdt_enabled = 1;
return 0;
return 1;
}

__setup("acpi_fake_ecdt", acpi_fake_ecdt_setup);
Expand All @@ -1591,7 +1591,7 @@ static int __init acpi_ec_set_intr_mode(char *str)
acpi_ec_driver.ops.add = acpi_ec_poll_add;
}
printk(KERN_INFO PREFIX "EC %s mode.\n", intr ? "interrupt" : "polling");
return 0;
return 1;
}

__setup("ec_intr=", acpi_ec_set_intr_mode);
1 change: 1 addition & 0 deletions drivers/block/amiflop.c
Original file line number Diff line number Diff line change
Expand Up @@ -1850,6 +1850,7 @@ static int __init amiga_floppy_setup (char *str)
return 0;
printk (KERN_INFO "amiflop: Setting default df0 to %x\n", n);
fd_def_df0 = n;
return 1;
}

__setup("floppy=", amiga_floppy_setup);
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/cpia_pp.c
Original file line number Diff line number Diff line change
Expand Up @@ -873,7 +873,7 @@ static int __init cpia_pp_setup(char *str)
parport_nr[parport_ptr++] = PPCPIA_PARPORT_NONE;
}

return 0;
return 1;
}

__setup("cpia_pp=", cpia_pp_setup);
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/netconsole.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ static struct console netconsole = {
static int option_setup(char *opt)
{
configured = !netpoll_parse_options(&np, opt);
return 0;
return 1;
}

__setup("netconsole=", option_setup);
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/pcmcia/xirc2ps_cs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1973,7 +1973,7 @@ static int __init setup_xirc2ps_cs(char *str)
MAYBE_SET(lockup_hack, 6);
#undef MAYBE_SET

return 0;
return 1;
}

__setup("xirc2ps_cs=", setup_xirc2ps_cs);
Expand Down
12 changes: 6 additions & 6 deletions drivers/pcmcia/vrc4171_card.c
Original file line number Diff line number Diff line change
Expand Up @@ -634,7 +634,7 @@ static void vrc4171_remove_sockets(void)
static int __devinit vrc4171_card_setup(char *options)
{
if (options == NULL || *options == '\0')
return 0;
return 1;

if (strncmp(options, "irq:", 4) == 0) {
int irq;
Expand All @@ -644,7 +644,7 @@ static int __devinit vrc4171_card_setup(char *options)
vrc4171_irq = irq;

if (*options != ',')
return 0;
return 1;
options++;
}

Expand All @@ -663,10 +663,10 @@ static int __devinit vrc4171_card_setup(char *options)
}

if (*options != ',')
return 0;
return 1;
options++;
} else
return 0;
return 1;

}

Expand All @@ -688,7 +688,7 @@ static int __devinit vrc4171_card_setup(char *options)
}

if (*options != ',')
return 0;
return 1;
options++;

if (strncmp(options, "memnoprobe", 10) == 0)
Expand All @@ -700,7 +700,7 @@ static int __devinit vrc4171_card_setup(char *options)
}
}

return 0;
return 1;
}

__setup("vrc4171_card=", vrc4171_card_setup);
Expand Down
8 changes: 4 additions & 4 deletions drivers/pcmcia/vrc4173_cardu.c
Original file line number Diff line number Diff line change
Expand Up @@ -516,7 +516,7 @@ static int __devinit vrc4173_cardu_probe(struct pci_dev *dev,
static int __devinit vrc4173_cardu_setup(char *options)
{
if (options == NULL || *options == '\0')
return 0;
return 1;

if (strncmp(options, "cardu1:", 7) == 0) {
options += 7;
Expand All @@ -527,9 +527,9 @@ static int __devinit vrc4173_cardu_setup(char *options)
}

if (*options != ',')
return 0;
return 1;
} else
return 0;
return 1;
}

if (strncmp(options, "cardu2:", 7) == 0) {
Expand All @@ -538,7 +538,7 @@ static int __devinit vrc4173_cardu_setup(char *options)
cardu_sockets[CARDU2].noprobe = 1;
}

return 0;
return 1;
}

__setup("vrc4173_cardu=", vrc4173_cardu_setup);
Expand Down
2 changes: 1 addition & 1 deletion drivers/scsi/ibmmca.c
Original file line number Diff line number Diff line change
Expand Up @@ -2488,7 +2488,7 @@ static int option_setup(char *str)
}
ints[0] = i - 1;
internal_ibmmca_scsi_setup(cur, ints);
return 0;
return 1;
}

__setup("ibmmcascsi=", option_setup);
Expand Down
Loading

0 comments on commit 9b41046

Please sign in to comment.