[PATCH] Don't pass boot parameters to argv_init[]
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Fri, 31 Mar 2006 10:30:33 +0000 (02:30 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 31 Mar 2006 20:18:53 +0000 (12:18 -0800)
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>
32 files changed:
arch/alpha/kernel/core_marvel.c
arch/i386/kernel/apic.c
arch/i386/kernel/cpu/mcheck/mce.c
arch/i386/kernel/io_apic.c
arch/i386/kernel/traps.c
arch/powerpc/kernel/crash_dump.c
arch/sh/kernel/cpu/init.c
arch/x86_64/kernel/apic.c
arch/x86_64/kernel/early_printk.c
arch/x86_64/kernel/mce.c
arch/x86_64/kernel/pmtimer.c
arch/x86_64/kernel/setup.c
arch/x86_64/kernel/setup64.c
arch/x86_64/kernel/smpboot.c
arch/x86_64/kernel/time.c
arch/x86_64/kernel/traps.c
arch/x86_64/mm/fault.c
block/elevator.c
drivers/acpi/ec.c
drivers/block/amiflop.c
drivers/media/video/cpia_pp.c
drivers/net/netconsole.c
drivers/net/pcmcia/xirc2ps_cs.c
drivers/pcmcia/vrc4171_card.c
drivers/pcmcia/vrc4173_cardu.c
drivers/scsi/ibmmca.c
drivers/video/console/fbcon.c
drivers/video/console/sticore.c
drivers/video/fbmem.c
drivers/video/stifb.c
kernel/audit.c
mm/memory.c

index 44866cb26a802c981bf08c906d216c4cf0923b4c..7f6a98455e74e52f666893b457f138a0eedc3cda 100644 (file)
@@ -435,7 +435,7 @@ marvel_specify_io7(char *str)
                str = pchar;
        } while(*str);
 
-       return 0;
+       return 1;
 }
 __setup("io7=", marvel_specify_io7);
 
index 3fff3c62d57afb95f3b64bb8d4b2f2b471b0cf04..6273bf74c2031e1cf8856aca5658b8de433a77c3 100644 (file)
@@ -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);
index 6170af3c271aee39554172a0cd9eb9ce99452113..afa0888f9a1e8f12cfd185d8874b93f8099ecae1 100644 (file)
@@ -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);
index 3b329af4afc53dc5303a93dc3d573c1c41517891..f8f132aa54725fe937a016ae5dd0bb99b6be8d18 100644 (file)
@@ -644,7 +644,7 @@ failed:
 int __init irqbalance_disable(char *str)
 {
        irqbalance_disabled = 1;
-       return 0;
+       return 1;
 }
 
 __setup("noirqbalance", irqbalance_disable);
index 6b63a5aa1e46f945230d73574c9f1be6e385e032..e38527994590f8ba12d19ea125e4c18aeb2fc96a 100644 (file)
@@ -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);
index 211d72653ea684c6324557907abd29238eea237d..764d073297165cc4792e83c1d3a1191ac34d09c0 100644 (file)
@@ -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
@@ -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);
 
index cf94e8ef17c5e50a6d21dc88e8442f743a12fe86..868e68b288809a406fe01801d50c87f393ec9cf4 100644 (file)
@@ -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);
 
index d54620147e8e3441e279e524888d2278d0947c0d..100a30c4004491137f2f5da6450cca15d766da4a 100644 (file)
@@ -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);
@@ -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);
 
index 13af920b659422ce1b50cadb2241c3567030522d..b93ef5b5198062a7abc10dd351d29aa9162fd545 100644 (file)
@@ -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, ' ');
index 04282ef9fbd4bfd533f27b4bb864e2b60a400a7a..10b3e348fc9960c66fafec31350ba81f97196ebc 100644 (file)
@@ -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
@@ -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);
index ee5ee4891f3d3b0e9ad958de6c5880989aa57540..b0444a415bd60670a2314d9e0f9c0c54641a7e56 100644 (file)
@@ -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);
index d1f3e9272c054b6efe4db3e032fbeb7883f371b4..0856ad444f90d8baf232af5903b3f7fb46143474 100644 (file)
@@ -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); 
index eabdb63fec310135c51bb661dcdc4b2f1bfbee7d..8a691fa6d3938e0d6473e208d477995b6838055c 100644 (file)
@@ -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 */
 
@@ -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);
 
index ea48fa638070060e05a257bad6ba4c03ecdc88f8..71a7222cf9ce10e2e6d2629699b2aece2669f289 100644 (file)
@@ -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);
 
index 473b514b66e437bc835d4958c57592e06b21ff53..ef8bc46dc14023f1dc47aec58f8962d9c8c8518e 100644 (file)
@@ -1306,7 +1306,7 @@ 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);
@@ -1314,7 +1314,7 @@ __setup("nohpet", nohpet_setup);
 int __init notsc_setup(char *s)
 {
        notsc = 1;
-       return 0;
+       return 1;
 }
 
 __setup("notsc", notsc_setup);
index edaa9fe654dce5a978aad027f7cc4f2c8c8dccbb..6bda322d3cafe30f64c03ed426f03c80dc42890b 100644 (file)
@@ -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);
 
index 316c53de47bd8574cd530b8fd76e7405bc1f6df0..55250593d8c949a86622315b8f288ba40c8e4444 100644 (file)
@@ -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);
index 56c2ed06a9e2432f89150a8d274bc1f4517b7a1a..0d6be03d929ea348423f8abf4a222f7c699d4e3b 100644 (file)
@@ -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);
index 79b09d76c180204e488a924dc4827572a51d92f1..eee0864ba300a6d8f2287f5919d8cd2fffa4e49b 100644 (file)
@@ -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);
@@ -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);
index b6e29095621401c6a1305037f681a2801c4547ab..2a8af685926fe0d2c7b197c535c6c0549c8224f1 100644 (file)
@@ -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);
index 3021f21aae36c7ee33a9b6cdf644a9181e0a7314..0b00e6027dfb302669a688f0167bc7a0bf8e1377 100644 (file)
@@ -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);
index edd1b5306b16ea5b790dba2b75281274b64232c1..75b35ad760de3cf78fa7b3939a9902c301261731 100644 (file)
@@ -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);
index eed496803fe40726eca6449f20b223d56b4999d5..e8f849e1297658c7511db6d8439765f8027c8b22 100644 (file)
@@ -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);
index 0574efd7828ac4f459f45d4f250cb319b135db69..459e6e1946fd57d8b7c158881d87be256549deec 100644 (file)
@@ -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);
index 57f38dba0a48908162b08aecfcef9b7484224daa..6004196f7cc10e586f98d9eeb746aaafef422570 100644 (file)
@@ -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);
index 3a8462e8d06354e390de6921df07190fbaa4ce61..24eb59e143a9503cb7d0a3ddf29a2bee7801924b 100644 (file)
@@ -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);
index 041d069878612052cddc875fba3094ed28d1c32c..d7351560f581363529b57ecd31b3e01569a032b7 100644 (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);
index d6041e781aca901184fa16a3611372d3273bdab4..74ac2acaf72c820b60ca65f6d4e46ed7f67c7fe6 100644 (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
index b1a8dca764306fd4e9ba39905c5e50241b3f2246..944855b3e4afe304aab2f25c43d24c6b5dbe82bf 100644 (file)
@@ -1588,7 +1588,7 @@ static int __init video_setup(char *options)
                }
        }
 
-       return 0;
+       return 1;
 }
 __setup("video=", video_setup);
 #endif
index 8d5f35676f9a5d003fe625ff25c0216ad9fcffb1..4a292aae6eb26878e69277a1f53eb58da759a8a8 100644 (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);
index 04fe2e301b611eb5e7666d8190458f1cf86b1bb5..c8ccbd09048f44aa3eebbcda06a091183ac1278f 100644 (file)
@@ -578,7 +578,7 @@ static int __init audit_enable(char *str)
               audit_initialized ? "" : " (after initialization)");
        if (audit_initialized)
                audit_enabled = audit_default;
-       return 0;
+       return 1;
 }
 
 __setup("audit=", audit_enable);
index 8d8f52569f328ab35d6ac9e68abe94c348434062..0ec7bc644271cf6ee2b88b7d32cc7987c5ea6dc6 100644 (file)
@@ -87,7 +87,7 @@ int randomize_va_space __read_mostly = 1;
 static int __init disable_randmaps(char *s)
 {
        randomize_va_space = 0;
-       return 0;
+       return 1;
 }
 __setup("norandmaps", disable_randmaps);