[PATCH] knfsd: nfsd4: idmap initialization
[powerpc.git] / kernel / printk.c
index 01b58d7..3a442bf 100644 (file)
@@ -876,8 +876,10 @@ void register_console(struct console * console)
                        break;
                console->flags |= CON_ENABLED;
                console->index = console_cmdline[i].index;
-               if (i == preferred_console)
+               if (i == selected_console) {
                        console->flags |= CON_CONSDEV;
+                       preferred_console = selected_console;
+               }
                break;
        }
 
@@ -897,6 +899,8 @@ void register_console(struct console * console)
        if ((console->flags & CON_CONSDEV) || console_drivers == NULL) {
                console->next = console_drivers;
                console_drivers = console;
+               if (console->next)
+                       console->next->flags &= ~CON_CONSDEV;
        } else {
                console->next = console_drivers->next;
                console_drivers->next = console;
@@ -937,10 +941,14 @@ int unregister_console(struct console * console)
        /* If last console is removed, we re-enable picking the first
         * one that gets registered. Without that, pmac early boot console
         * would prevent fbcon from taking over.
+        *
+        * If this isn't the last console and it has CON_CONSDEV set, we
+        * need to set it on the next preferred console.
         */
        if (console_drivers == NULL)
                preferred_console = selected_console;
-               
+       else if (console->flags & CON_CONSDEV)
+               console_drivers->flags |= CON_CONSDEV;
 
        release_console_sem();
        return res;