printk, xen: fbfront: create/use safe function for forcing preferred
authorJohn Ogness <john.ogness@linutronix.de>
Wed, 16 Nov 2022 16:21:44 +0000 (17:27 +0106)
committerPetr Mladek <pmladek@suse.com>
Fri, 2 Dec 2022 10:25:02 +0000 (11:25 +0100)
commit6f8836756f3cbb02bfd1f0e033516585250318a9
treeda70918f2ac3f0ad26c930085eabeab7b285a915
parent2c6b4b7065a7006271a9c12b1a1e6c56dc6d3796
printk, xen: fbfront: create/use safe function for forcing preferred

With commit 9e124fe16ff2("xen: Enable console tty by default in domU
if it's not a dummy") a hack was implemented to make sure that the
tty console remains the console behind the /dev/console device. The
main problem with the hack is that, after getting the console pointer
to the tty console, it is assumed the pointer is still valid after
releasing the console_sem. This assumption is incorrect and unsafe.

Make the hack safe by introducing a new function
console_force_preferred_locked() and perform the full operation
under the console_list_lock.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20221116162152.193147-33-john.ogness@linutronix.de
drivers/video/fbdev/xen-fbfront.c
include/linux/console.h
kernel/printk/printk.c