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 ||