Merge branch 'upstream/jump-label-noearly' of git://git.kernel.org/pub/scm/linux...
[firefly-linux-kernel-4.4.55.git] / init / main.c
index 29d8d847de9499ebb9fe1a601f5a5ec1eb8cbf58..217ed23e94875d59ffd7b6a95562fcba36112e08 100644 (file)
@@ -163,7 +163,7 @@ static int __init obsolete_checksetup(char *line)
        p = __setup_start;
        do {
                int n = strlen(p->str);
-               if (!strncmp(line, p->str, n)) {
+               if (parameqn(line, p->str, n)) {
                        if (p->early) {
                                /* Already done in parse_early_param?
                                 * (Needs exact match on param part).
@@ -381,9 +381,6 @@ static noinline void __init_refok rest_init(void)
        preempt_enable_no_resched();
        schedule();
 
-       /* At this point, we can enable user mode helper functionality */
-       usermodehelper_enable();
-
        /* Call into cpu_idle with preempt disabled */
        preempt_disable();
        cpu_idle();
@@ -395,7 +392,7 @@ static int __init do_early_param(char *param, char *val)
        const struct obs_kernel_param *p;
 
        for (p = __setup_start; p < __setup_end; p++) {
-               if ((p->early && strcmp(param, p->str) == 0) ||
+               if ((p->early && parameq(param, p->str)) ||
                    (strcmp(param, "console") == 0 &&
                     strcmp(p->str, "earlycon") == 0)
                ) {
@@ -736,6 +733,7 @@ static void __init do_basic_setup(void)
        driver_init();
        init_irq_proc();
        do_ctors();
+       usermodehelper_enable();
        do_initcalls();
 }