[PATCH 0/3] printk/console: Simplify the logic and always have a preferred console

From: Petr Mladek
Date: Tue Jun 13 2017 - 08:54:34 EST


The regression caused by the commit cf39bf58afdaabc0b ("printk: fix
double printing with earlycon") made me to investigate the console
registration code from many angles. And it was not an easy reading.

Especially the logic around the preferred console was somehow
twisted. The first two patches try to make it more straightforward.
The good thing is that they should not change the behavior.

Another problem was inconsistency in handling a fallback for
the preferred console. This is solved by the 3rd patch.
Also it solves a bug report related to "showconsole" that
I got 2 weeks ago. This fix slightly changes the order
of non-preferred consoles. But I believe that it is behind
the border when we need to take care of backward compatibility.

Sadly, we had to revert the fix of the duplicated output. It is
not solved by this patch set. I consider this a cosmetic issue.
A proper solution would be quite complicated. It might involve
rework of the console->match() functions and allow to match
aliases without side effects. Alternative solution would be
an additional command line option that would force handling
of CON_PRINTBUFFER flag and "never", "auto", or "always"
reply the buffer for newly registered consoles. But I am
not sure if it is worth it.


Petr Mladek (3):
printk/console: Remove superfluous setting of has_preferred state
value
printk/console: Clean up logic around fallback console
printk/console: Always have a preferred console

kernel/printk/printk.c | 48 ++++++++++++++++++++----------------------------
1 file changed, 20 insertions(+), 28 deletions(-)

--
1.8.5.6