Message ID | 20181029153258.7516-1-prarit@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] fbcon: Silence fbcon logo on 'quiet' boots | expand |
Hi Prarit,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on sof-driver-fuweitax/master]
[also build test ERROR on v4.19 next-20181029]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Prarit-Bhargava/fbcon-Silence-fbcon-logo-on-quiet-boots/20181029-233506
base: https://github.com/fuweitax/linux master
config: x86_64-allmodconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
kernel/module.c:257:18: warning: symbol 'kdb_modules' was not declared. Should it be static?
>> kernel/module.c:3915:41: error: incompatible types in comparison expression (different address spaces)
kernel/module.c:4050:28: error: incompatible types in comparison expression (different address spaces)
kernel/module.c:4069:41: error: incompatible types in comparison expression (different address spaces)
vim +3915 kernel/module.c
2e7bac53 Rusty Russell 2016-02-03 3907
^1da177e Linus Torvalds 2005-04-16 3908 static const char *get_ksymbol(struct module *mod,
^1da177e Linus Torvalds 2005-04-16 3909 unsigned long addr,
^1da177e Linus Torvalds 2005-04-16 3910 unsigned long *size,
^1da177e Linus Torvalds 2005-04-16 3911 unsigned long *offset)
^1da177e Linus Torvalds 2005-04-16 3912 {
^1da177e Linus Torvalds 2005-04-16 3913 unsigned int i, best = 0;
^1da177e Linus Torvalds 2005-04-16 3914 unsigned long nextval;
8244062e Rusty Russell 2016-02-03 @3915 struct mod_kallsyms *kallsyms = rcu_dereference_sched(mod->kallsyms);
^1da177e Linus Torvalds 2005-04-16 3916
^1da177e Linus Torvalds 2005-04-16 3917 /* At worse, next value is at end of module */
a06f6211 Masami Hiramatsu 2009-01-06 3918 if (within_module_init(addr, mod))
7523e4dc Rusty Russell 2015-11-26 3919 nextval = (unsigned long)mod->init_layout.base+mod->init_layout.text_size;
^1da177e Linus Torvalds 2005-04-16 3920 else
7523e4dc Rusty Russell 2015-11-26 3921 nextval = (unsigned long)mod->core_layout.base+mod->core_layout.text_size;
^1da177e Linus Torvalds 2005-04-16 3922
25985edc Lucas De Marchi 2011-03-30 3923 /* Scan for closest preceding symbol, and next symbol. (ELF
^1da177e Linus Torvalds 2005-04-16 3924 starts real symbols at 1). */
8244062e Rusty Russell 2016-02-03 3925 for (i = 1; i < kallsyms->num_symtab; i++) {
8244062e Rusty Russell 2016-02-03 3926 if (kallsyms->symtab[i].st_shndx == SHN_UNDEF)
^1da177e Linus Torvalds 2005-04-16 3927 continue;
^1da177e Linus Torvalds 2005-04-16 3928
^1da177e Linus Torvalds 2005-04-16 3929 /* We ignore unnamed symbols: they're uninformative
^1da177e Linus Torvalds 2005-04-16 3930 * and inserted at a whim. */
8244062e Rusty Russell 2016-02-03 3931 if (*symname(kallsyms, i) == '\0'
8244062e Rusty Russell 2016-02-03 3932 || is_arm_mapping_symbol(symname(kallsyms, i)))
2e7bac53 Rusty Russell 2016-02-03 3933 continue;
2e7bac53 Rusty Russell 2016-02-03 3934
8244062e Rusty Russell 2016-02-03 3935 if (kallsyms->symtab[i].st_value <= addr
8244062e Rusty Russell 2016-02-03 3936 && kallsyms->symtab[i].st_value > kallsyms->symtab[best].st_value)
^1da177e Linus Torvalds 2005-04-16 3937 best = i;
8244062e Rusty Russell 2016-02-03 3938 if (kallsyms->symtab[i].st_value > addr
8244062e Rusty Russell 2016-02-03 3939 && kallsyms->symtab[i].st_value < nextval)
8244062e Rusty Russell 2016-02-03 3940 nextval = kallsyms->symtab[i].st_value;
^1da177e Linus Torvalds 2005-04-16 3941 }
^1da177e Linus Torvalds 2005-04-16 3942
^1da177e Linus Torvalds 2005-04-16 3943 if (!best)
^1da177e Linus Torvalds 2005-04-16 3944 return NULL;
^1da177e Linus Torvalds 2005-04-16 3945
ffb45122 Alexey Dobriyan 2007-05-08 3946 if (size)
8244062e Rusty Russell 2016-02-03 3947 *size = nextval - kallsyms->symtab[best].st_value;
ffb45122 Alexey Dobriyan 2007-05-08 3948 if (offset)
8244062e Rusty Russell 2016-02-03 3949 *offset = addr - kallsyms->symtab[best].st_value;
8244062e Rusty Russell 2016-02-03 3950 return symname(kallsyms, best);
^1da177e Linus Torvalds 2005-04-16 3951 }
^1da177e Linus Torvalds 2005-04-16 3952
:::::: The code at line 3915 was first introduced by commit
:::::: 8244062ef1e54502ef55f54cced659913f244c3e modules: fix longstanding /proc/kallsyms vs module insertion race.
:::::: TO: Rusty Russell <rusty@rustcorp.com.au>
:::::: CC: Rusty Russell <rusty@rustcorp.com.au>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index 75ebbbf0a1fb..53fc151f3f7b 100644 --- a/drivers/video/fbdev/core/fbcon.c +++ b/drivers/video/fbdev/core/fbcon.c @@ -650,11 +650,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; } @@ -1052,7 +1055,7 @@ static void fbcon_init(struct vc_data *vc, int init) struct vc_data **default_mode = vc->vc_display_fg; struct vc_data *svc = *default_mode; struct display *t, *p = &fb_display[vc->vc_num]; - int logo = 1, new_rows, new_cols, rows, cols, charcnt = 256; + int new_rows, new_cols, rows, cols, charcnt = 256; int cap, ret; if (info_idx == -1 || info == NULL) @@ -1060,9 +1063,9 @@ static void fbcon_init(struct vc_data *vc, int init) cap = info->flags; - if (vc != svc || logo_shown == FBCON_LOGO_DONTSHOW || + if (vc != svc || console_loglevel <= CONSOLE_LOGLEVEL_QUIET || (info->fix.type == FB_TYPE_TEXT)) - logo = 0; + logo_shown = FBCON_LOGO_DONTSHOW; if (var_to_display(p, &info->var, info)) return; @@ -1178,7 +1181,7 @@ static void fbcon_init(struct vc_data *vc, int init) } else vc_resize(vc, new_cols, new_rows); - if (logo) + if (logo_shown != FBCON_LOGO_DONTSHOW) fbcon_prepare_logo(vc, info, cols, rows, new_cols, new_rows); if (vc == svc && softback_buf)
A variant of this patch has been in Fedora since at least 2010 and AFAWCT there haven't been any complaints about the change in behavior. https://src.fedoraproject.org/cgit/rpms/kernel.git/tree/silence-fbcon-logo.patch P. ---8<--- 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. 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 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)