On text-based systems the 'quiet' boot option will show printk levels higher than CONSOLE_LOGLEVEL_QUIET. The displaying of the Tux logo during boot can cause some consoles to lose display data and as a result confuse the end user.
Do not display the Tux logo on systems that are in 'quiet' boot.
v2: It helps to commit all my changes before sending them. Remove extra bracket. v3: buildbot error fix: fbcon can be built as part of a module so export console_printk v4: move console_printk change to separate patch, and drop logo cleanup v5: Only set FBCON_LOGO_DONTSHOW for console loglevel
Signed-off-by: Prarit Bhargava prarit@redhat.com Cc: Hans de Goede hdegoede@redhat.com Cc: Marko Myllynen myllynen@redhat.com Cc: Steven Rostedt (VMware) rostedt@goodmis.org Cc: Bartlomiej Zolnierkiewicz b.zolnierkie@samsung.com Cc: Kees Cook keescook@chromium.org Cc: Daniel Vetter daniel.vetter@ffwll.ch Cc: Thierry Reding treding@nvidia.com Cc: Yisheng Xie ysxie@foxmail.com Cc: Petr Mladek pmladek@suse.com Cc: Sergey Senozhatsky sergey.senozhatsky@gmail.com Cc: dri-devel@lists.freedesktop.org
Prarit Bhargava (2): printk: Export console_printk fbcon: Silence fbcon logo on 'quiet' boots
drivers/video/fbdev/core/fbcon.c | 8 +++++++- kernel/printk/printk.c | 1 + 2 files changed, 8 insertions(+), 1 deletion(-)
On text-based systems the 'quiet' boot option will show printk levels higher than CONSOLE_LOGLEVEL_QUIET. The displaying of the Tux logo during boot can cause some consoles to lose display data and as a result confuse the end user.
Do not display the Tux logo on systems that are in 'quiet' boot.
v2: It helps to commit all my changes before sending them. Remove extra bracket. v3: buildbot error fix: fbcon can be built as part of a module so export console_printk v4: move console_printk change to separate patch, and drop logo cleanup v5: Only set FBCON_LOGO_DONTSHOW for console loglevel
Signed-off-by: Prarit Bhargava prarit@redhat.com Cc: Hans de Goede hdegoede@redhat.com Cc: Marko Myllynen myllynen@redhat.com Cc: Steven Rostedt (VMware) rostedt@goodmis.org Cc: Bartlomiej Zolnierkiewicz b.zolnierkie@samsung.com Cc: Kees Cook keescook@chromium.org Cc: Daniel Vetter daniel.vetter@ffwll.ch Cc: Thierry Reding treding@nvidia.com Cc: Yisheng Xie ysxie@foxmail.com Cc: dri-devel@lists.freedesktop.org --- drivers/video/fbdev/core/fbcon.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index bfa1360ec750..59b626356983 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -656,11 +656,14 @@ static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info, kfree(save); }
+ if (logo_shown == FBCON_LOGO_DONTSHOW) + return; + if (logo_lines > vc->vc_bottom) { logo_shown = FBCON_LOGO_CANSHOW; printk(KERN_INFO "fbcon_init: disable boot-logo (boot-logo bigger than screen).\n"); - } else if (logo_shown != FBCON_LOGO_DONTSHOW) { + } else { logo_shown = FBCON_LOGO_DRAW; vc->vc_top = logo_lines; } @@ -1066,6 +1069,9 @@ static void fbcon_init(struct vc_data *vc, int init)
cap = info->flags;
+ if (console_loglevel <= CONSOLE_LOGLEVEL_QUIET) + logo_shown = FBCON_LOGO_DONTSHOW; + if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || (info->fix.type == FB_TYPE_TEXT)) logo = 0;
On Jan 29 2019, Prarit Bhargava prarit@redhat.com wrote:
@@ -1066,6 +1069,9 @@ static void fbcon_init(struct vc_data *vc, int init)
cap = info->flags;
- if (console_loglevel <= CONSOLE_LOGLEVEL_QUIET)
logo_shown = FBCON_LOGO_DONTSHOW;
- if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || (info->fix.type == FB_TYPE_TEXT)) logo = 0;
This causes the scroll region to no longer be reset when the logo is removed.
Andreas.
On 4/1/19 3:31 PM, Andreas Schwab wrote:
On Jan 29 2019, Prarit Bhargava prarit@redhat.com wrote:
@@ -1066,6 +1069,9 @@ static void fbcon_init(struct vc_data *vc, int init)
cap = info->flags;
- if (console_loglevel <= CONSOLE_LOGLEVEL_QUIET)
logo_shown = FBCON_LOGO_DONTSHOW;
- if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || (info->fix.type == FB_TYPE_TEXT)) logo = 0;
This causes the scroll region to no longer be reset when the logo is removed.
Andreas, my apologies but I'm not sure what you mean. Could you elaborate on the broken and expected behaviour?
I'm absolutely not disputing that there's a bug.
Thanks,
P.
Andreas.
On Apr 02 2019, Prarit Bhargava prarit@redhat.com wrote:
On 4/1/19 3:31 PM, Andreas Schwab wrote:
On Jan 29 2019, Prarit Bhargava prarit@redhat.com wrote:
@@ -1066,6 +1069,9 @@ static void fbcon_init(struct vc_data *vc, int init)
cap = info->flags;
- if (console_loglevel <= CONSOLE_LOGLEVEL_QUIET)
logo_shown = FBCON_LOGO_DONTSHOW;
- if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || (info->fix.type == FB_TYPE_TEXT)) logo = 0;
This causes the scroll region to no longer be reset when the logo is removed.
Andreas, my apologies but I'm not sure what you mean. Could you elaborate on the broken and expected behaviour?
If fbcon_init is called after the loglevel is reduced to CONSOLE_LOGLEVEL_QUIET, the logo is not drawn, but the scrolling region remains.
Andreas.
When the logo is currently drawn on a virtual console, and the console loglevel is reduced to quiet, logo_shown must be left alone, so that it the scrolling region on that virtual console is properly reset.
Fixes: 10993504d647 ("fbcon: Silence fbcon logo on 'quiet' boots") Signed-off-by: Andreas Schwab schwab@linux-m68k.org --- On Apr 02 2019, Prarit Bhargava prarit@redhat.com wrote:
On 4/1/19 3:31 PM, Andreas Schwab wrote:
On Jan 29 2019, Prarit Bhargava prarit@redhat.com wrote:
@@ -1066,6 +1069,9 @@ static void fbcon_init(struct vc_data *vc, int init)
cap = info->flags;
- if (console_loglevel <= CONSOLE_LOGLEVEL_QUIET)
logo_shown = FBCON_LOGO_DONTSHOW;
- if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || (info->fix.type == FB_TYPE_TEXT)) logo = 0;
This causes the scroll region to no longer be reset when the logo is removed.
Andreas, my apologies but I'm not sure what you mean. Could you elaborate on the broken and expected behaviour?
[ 3.204286] fbcon_init: logo_shown = -1, console_loglevel = 7 [ 11.840899] fbcon_init: logo_shown = 0, console_loglevel = 1 [ 35.344877] fbcon_init: logo_shown = -3, console_loglevel = 1 [ 35.345274] fbcon_init: logo_shown = -3, console_loglevel = 1 [ 35.345622] fbcon_init: logo_shown = -3, console_loglevel = 1 [ 35.345974] fbcon_init: logo_shown = -3, console_loglevel = 1 [ 35.346375] fbcon_init: logo_shown = -3, console_loglevel = 1
logo_shown must not be reset when non-negative.
Andreas. --- drivers/video/fbdev/core/fbcon.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index cd059a801662..786f9aab55df 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -1069,7 +1069,7 @@ static void fbcon_init(struct vc_data *vc, int init)
cap = info->flags;
- if (console_loglevel <= CONSOLE_LOGLEVEL_QUIET) + if (logo_shown < 0 && console_loglevel <= CONSOLE_LOGLEVEL_QUIET) logo_shown = FBCON_LOGO_DONTSHOW;
if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW ||
On 04/02/2019 08:09 PM, Andreas Schwab wrote:
When the logo is currently drawn on a virtual console, and the console loglevel is reduced to quiet, logo_shown must be left alone, so that it the scrolling region on that virtual console is properly reset.
Fixes: 10993504d647 ("fbcon: Silence fbcon logo on 'quiet' boots") Signed-off-by: Andreas Schwab schwab@linux-m68k.org
Patch queued for v5.2, thanks.
Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
On 01/29/2019 02:43 PM, Prarit Bhargava wrote:
On text-based systems the 'quiet' boot option will show printk levels higher than CONSOLE_LOGLEVEL_QUIET. The displaying of the Tux logo during boot can cause some consoles to lose display data and as a result confuse the end user.
Do not display the Tux logo on systems that are in 'quiet' boot.
v2: It helps to commit all my changes before sending them. Remove extra bracket. v3: buildbot error fix: fbcon can be built as part of a module so export console_printk v4: move console_printk change to separate patch, and drop logo cleanup v5: Only set FBCON_LOGO_DONTSHOW for console loglevel
Signed-off-by: Prarit Bhargava prarit@redhat.com
Patches #1-2 queued for v5.1, thanks.
Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics
dri-devel@lists.freedesktop.org