mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
printk: don't prefer unsuited consoles on registration
console election: If some console happens to be registered first which does not provide a tty binding (!console->device), it prevents that more suited consoles which are registered later on can enter the candidate pool for console_device(). This is observable with KGDB's console which may already be registered (and exploited!) during early debugger connections, that is before any regular console registration. This patch fixes the issue by postponing the final, automated preferred_console selection until someone with a non-NULL device handler comes around. Signed-off-by: Jan Kiszka <jan.kiszka@web.de> Cc: Jason Wessel <jason.wessel@windriver.com> Cc: Gerd Hoffmann <kraxel@suse.de> Cc: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
3b8945e8d4
commit
cd3a1b8562
@ -1157,8 +1157,11 @@ void register_console(struct console *console)
|
||||
console->index = 0;
|
||||
if (console->setup == NULL ||
|
||||
console->setup(console, NULL) == 0) {
|
||||
console->flags |= CON_ENABLED | CON_CONSDEV;
|
||||
preferred_console = 0;
|
||||
console->flags |= CON_ENABLED;
|
||||
if (console->device) {
|
||||
console->flags |= CON_CONSDEV;
|
||||
preferred_console = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user