init: bootconfig: Remove all bootconfig data when the init memory is removed
[sfrench/cifs-2.6.git] / init / main.c
index 8d97aba78c3ad03d9b261ffd0b1089e58fbf598a..d35c4a865adb192c0ebf3cd9e2f17e6856e9675b 100644 (file)
@@ -468,7 +468,12 @@ static void __init setup_boot_config(void)
        return;
 }
 
-#else
+static void __init exit_boot_config(void)
+{
+       xbc_destroy_all();
+}
+
+#else  /* !CONFIG_BOOT_CONFIG */
 
 static void __init setup_boot_config(void)
 {
@@ -481,7 +486,11 @@ static int __init warn_bootconfig(char *str)
        pr_warn("WARNING: 'bootconfig' found on the kernel command line but CONFIG_BOOT_CONFIG is not set.\n");
        return 0;
 }
-#endif
+
+#define exit_boot_config()     do {} while (0)
+
+#endif /* CONFIG_BOOT_CONFIG */
+
 early_param("bootconfig", warn_bootconfig);
 
 /* Change NUL term back to "=", to make "param" the whole string. */
@@ -1493,6 +1502,7 @@ static int __ref kernel_init(void *unused)
        kprobe_free_init_mem();
        ftrace_free_init_mem();
        kgdb_free_init_mem();
+       exit_boot_config();
        free_initmem();
        mark_readonly();