Re: [PATCH 1/1] Revert "init/console: Use ttynull as a fallback when there is no console"

From: Sergey Senozhatsky
Date: Thu Jan 07 2021 - 22:42:04 EST


On (21/01/07 17:44), Petr Mladek wrote:
>
> This reverts commit 757055ae8dedf5333af17b3b5b4b70ba9bc9da4e.
>
> The commit caused that ttynull was used as the default console
> on many systems. It happened when there was no console configured
> on the command line and ttynull_init() was the first initcall
> calling register_console().
>
> The commit fixed a historical problem that have been there for ages.
> The primary motivation was the commit 3cffa06aeef7ece30f6
> ("printk/console: Allow to disable console output by using console=""
> or console=null"). It provided a clean solution
> for a workaround that was widely used and worked only by chance.
>
> This revert causes that the console="" or console=null command line
> options will again work only by chance. These options will cause that
> a particular console will be preferred and the default (tty) ones
> will not get enabled. There will be no console registered at
> all. As a result there won't be stdin, stdout, and stderr for
> the init process. But it worked exactly this way even before.
>
> The proper solution has to fulfill many conditions:
>
> + Register ttynull only when explicitly required or as
> the ultimate fallback.
>
> + ttynull must get associated with /dev/console but it must
> not become preferred console when used as a fallback.
> Especially, it must still be possible to replace it
> by a better console later.
>
> Such a change requires clean up of the register_console() code.
> Otherwise, it would be even harder to follow. Especially, the use
> of has_preferred_console and CON_CONSDEV flag is tricky. The clean
> up is risky. The ordering of consoles is not well defined. And
> any changes tend to break existing user settings.
>
> Do the revert at the least risky solution for now.
>
> Signed-off-by: Petr Mladek <pmladek@xxxxxxxx>

Acked-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx>

-ss