[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 <hirofumi@mail.parknet.co.jp> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
68eef3b479
commit
9b41046cd0
@@ -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;
|
||||
@@ -644,7 +644,7 @@ static int __devinit vrc4171_card_setup(char *options)
|
||||
vrc4171_irq = irq;
|
||||
|
||||
if (*options != ',')
|
||||
return 0;
|
||||
return 1;
|
||||
options++;
|
||||
}
|
||||
|
||||
@@ -663,10 +663,10 @@ static int __devinit vrc4171_card_setup(char *options)
|
||||
}
|
||||
|
||||
if (*options != ',')
|
||||
return 0;
|
||||
return 1;
|
||||
options++;
|
||||
} else
|
||||
return 0;
|
||||
return 1;
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
@@ -700,7 +700,7 @@ static int __devinit vrc4171_card_setup(char *options)
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
__setup("vrc4171_card=", vrc4171_card_setup);
|
||||
|
||||
@@ -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;
|
||||
@@ -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) {
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user