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.p...
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.
Signed-off-by: Prarit Bhargava prarit@redhat.com Cc: Hans de Goede hdegoede@redhat.com Cc: Marko Myllynen myllynen@redhat.com 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 Cc: Steven Rostedt (VMware) rostedt@goodmis.org --- drivers/video/fbdev/core/fbcon.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index 75ebbbf0a1fb..a2f2c7ea11ef 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)
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... base: https://github.com/fuweitax/linux master config: m68k-multi_defconfig (attached as .config) compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=m68k
All errors (new ones prefixed by >>):
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for function 'set_blitting_type' static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~ drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for function 'fbcon_invalid_charcount' static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) ^~~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo' static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo' static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display' static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map' static int set_con2fb_map(int unit, int newidx, int user) ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display' static int var_to_display(struct display *disp, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var' static void display_to_var(struct fb_var_screeninfo *var, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup' static const char *fbcon_startup(void) ^~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init' static void fbcon_init(struct vc_data *vc, int init) ^~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font' static void fbcon_free_font(struct display *p, bool freefont) ^~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font' static void set_vc_hi_font(struct vc_data *vc, bool set); ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit' static void fbcon_deinit(struct vc_data *vc) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit':
drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'seq_path_root'? [-Werror=implicit-function-declaration]
set_vc_hi_font(vc, false); ^~~~~~~~~~~~~~ seq_path_root drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': drivers/video/fbdev/core/fbcon.c:1262:13: error: invalid storage class for function 'fbcon_clear' static void fbcon_clear(struct vc_data *vc, int sy, int sx, int height, ^~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1300:13: error: invalid storage class for function 'fbcon_putcs' static void fbcon_putcs(struct vc_data *vc, const unsigned short *s, ^~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1313:13: error: invalid storage class for function 'fbcon_putc' static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos) ^~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1321:13: error: invalid storage class for function 'fbcon_clear_margins' static void fbcon_clear_margins(struct vc_data *vc, int bottom_only) ^~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1330:13: error: invalid storage class for function 'fbcon_cursor' static void fbcon_cursor(struct vc_data *vc, int mode) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1365:13: error: invalid storage class for function 'fbcon_set_disp' static void fbcon_set_disp(struct fb_info *info, struct fb_var_screeninfo *var, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1433:24: error: invalid storage class for function 'ywrap_up' static __inline__ void ywrap_up(struct vc_data *vc, int count) ^~~~~~~~ drivers/video/fbdev/core/fbcon.c:1452:24: error: invalid storage class for function 'ywrap_down' static __inline__ void ywrap_down(struct vc_data *vc, int count) ^~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1471:24: error: invalid storage class for function 'ypan_up' static __inline__ void ypan_up(struct vc_data *vc, int count) ^~~~~~~ drivers/video/fbdev/core/fbcon.c:1495:24: error: invalid storage class for function 'ypan_up_redraw' static __inline__ void ypan_up_redraw(struct vc_data *vc, int t, int count) ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1519:24: error: invalid storage class for function 'ypan_down' static __inline__ void ypan_down(struct vc_data *vc, int count) ^~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1543:24: error: invalid storage class for function 'ypan_down_redraw' static __inline__ void ypan_down_redraw(struct vc_data *vc, int t, int count) ^~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1567:13: error: invalid storage class for function 'fbcon_redraw_softback' static void fbcon_redraw_softback(struct vc_data *vc, struct display *p, ^~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1660:13: error: invalid storage class for function 'fbcon_redraw_move' static void fbcon_redraw_move(struct vc_data *vc, struct display *p, ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1694:13: error: invalid storage class for function 'fbcon_redraw_blit' static void fbcon_redraw_blit(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1744:13: error: invalid storage class for function 'fbcon_redraw' static void fbcon_redraw(struct vc_data *vc, struct display *p, ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1799:20: error: invalid storage class for function 'fbcon_softback_note' static inline void fbcon_softback_note(struct vc_data *vc, int t, ^~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1824:13: error: invalid storage class for function 'fbcon_scroll' static bool fbcon_scroll(struct vc_data *vc, unsigned int t, unsigned int b, ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2028:13: error: invalid storage class for function 'fbcon_bmove' static void fbcon_bmove(struct vc_data *vc, int sy, int sx, int dy, int dx, ^~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2051:13: error: invalid storage class for function 'fbcon_bmove_rec' static void fbcon_bmove_rec(struct vc_data *vc, struct display *p, int sy, int sx, ^~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2093:13: error: invalid storage class for function 'updatescrollmode' static void updatescrollmode(struct display *p, ^~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2140:12: error: invalid storage class for function 'fbcon_resize' static int fbcon_resize(struct vc_data *vc, unsigned int width, ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2186:12: error: invalid storage class for function 'fbcon_switch' static int fbcon_switch(struct vc_data *vc) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2325:13: error: invalid storage class for function 'fbcon_generic_blank' static void fbcon_generic_blank(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2350:12: error: invalid storage class for function 'fbcon_blank' static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) ^~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2392:12: error: invalid storage class for function 'fbcon_debug_enter' static int fbcon_debug_enter(struct vc_data *vc) ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2405:12: error: invalid storage class for function 'fbcon_debug_leave' static int fbcon_debug_leave(struct vc_data *vc) ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2416:12: error: invalid storage class for function 'fbcon_get_font' static int fbcon_get_font(struct vc_data *vc, struct console_font *font) ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2468:13: error: invalid storage class for function 'set_vc_hi_font' static void set_vc_hi_font(struct vc_data *vc, bool set) ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2528:12: error: invalid storage class for function 'fbcon_do_set_font' static int fbcon_do_set_font(struct vc_data *vc, int w, int h, ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2579:12: error: invalid storage class for function 'fbcon_copy_font' static int fbcon_copy_font(struct vc_data *vc, int con) ^~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:2601:12: error: invalid storage class for function 'fbcon_set_font' static int fbcon_set_font(struct vc_data *vc, struct console_font *font, ^~~~~~~~~~~~~~
vim +1229 drivers/video/fbdev/core/fbcon.c
e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1190 8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 @1191 static void set_vc_hi_font(struct vc_data *vc, bool set); 8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 1192 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1193 static void fbcon_deinit(struct vc_data *vc) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1194 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1195 struct display *p = &fb_display[vc->vc_num]; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1196 struct fb_info *info; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1197 struct fbcon_ops *ops; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1198 int idx; ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1199 bool free_font = true; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1200 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1201 idx = con2fb_map[vc->vc_num]; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1202 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1203 if (idx == -1) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1204 goto finished; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1205 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1206 info = registered_fb[idx]; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1207 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1208 if (!info) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1209 goto finished; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1210 ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1211 if (info->flags & FBINFO_MISC_FIRMWARE) ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1212 free_font = false; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1213 ops = info->fbcon_par; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1214 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1215 if (!ops) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1216 goto finished; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1217 6ca8dfd7 drivers/video/console/fbcon.c Jiri Slaby 2016-06-23 1218 if (con_is_visible(vc)) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1219 fbcon_del_cursor_timer(info); e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1220 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1221 ops->flags &= ~FBCON_FLAGS_INIT; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1222 finished: e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1223 ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1224 fbcon_free_font(p, free_font); e6637d54 drivers/video/console/fbcon.c Mika Kuoppala 2013-04-22 1225 if (free_font) e6637d54 drivers/video/console/fbcon.c Mika Kuoppala 2013-04-22 1226 vc->vc_font.data = NULL; ae128786 drivers/video/console/fbcon.c Dave Airlie 2013-01-24 1227 8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 1228 if (vc->vc_hi_font_mask) 8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 @1229 set_vc_hi_font(vc, false); 8aac7f34 drivers/video/console/fbcon.c Takashi Iwai 2017-01-11 1230 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1231 if (!con_is_bound(&fb_con)) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1232 fbcon_exit(); e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1233 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 1234 return; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1235 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 1236
:::::: The code at line 1229 was first introduced by commit :::::: 8aac7f34369726d1a158788ae8aff3002d5eb528 fbcon: Fix vc attr at deinit
:::::: TO: Takashi Iwai tiwai@suse.de :::::: CC: Bartlomiej Zolnierkiewicz b.zolnierkie@samsung.com
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On 10/29/2018 09:56 AM, kbuild test robot wrote:
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... base: https://github.com/fuweitax/linux master config: m68k-multi_defconfig (attached as .config) compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=m68k
All errors (new ones prefixed by >>):
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for function 'set_blitting_type' static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~ drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for function 'fbcon_invalid_charcount' static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) ^~~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo' static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo' static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display' static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map' static int set_con2fb_map(int unit, int newidx, int user) ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display' static int var_to_display(struct display *disp, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var' static void display_to_var(struct fb_var_screeninfo *var, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup' static const char *fbcon_startup(void) ^~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init' static void fbcon_init(struct vc_data *vc, int init) ^~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font' static void fbcon_free_font(struct display *p, bool freefont) ^~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font' static void set_vc_hi_font(struct vc_data *vc, bool set); ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit' static void fbcon_deinit(struct vc_data *vc) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit':
drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'seq_path_root'? [-Werror=implicit-function-declaration]
set_vc_hi_font(vc, false); ^~~~~~~~~~~~~~
Hmm ... this doesn't look like anything that is at fault with my patch.
There's a lot of warnings here, and perhaps another fix is required to make sure that the configs are set correctly? I can certainly take a look in another patch but AFAICT this isn't an issue with my patch.
P.
On 10/29/2018 11:15 PM, Prarit Bhargava wrote:
On 10/29/2018 09:56 AM, kbuild test robot wrote:
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... base: https://github.com/fuweitax/linux master config: m68k-multi_defconfig (attached as .config) compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=m68k
All errors (new ones prefixed by >>):
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for function 'set_blitting_type' static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~ drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for function 'fbcon_invalid_charcount' static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) ^~~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo' static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo' static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display' static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map' static int set_con2fb_map(int unit, int newidx, int user) ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display' static int var_to_display(struct display *disp, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var' static void display_to_var(struct fb_var_screeninfo *var, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup' static const char *fbcon_startup(void) ^~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init' static void fbcon_init(struct vc_data *vc, int init) ^~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font' static void fbcon_free_font(struct display *p, bool freefont) ^~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font' static void set_vc_hi_font(struct vc_data *vc, bool set); ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit' static void fbcon_deinit(struct vc_data *vc) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit':
drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'seq_path_root'? [-Werror=implicit-function-declaration]
set_vc_hi_font(vc, false); ^~~~~~~~~~~~~~
Hmm ... this doesn't look like anything that is at fault with my patch.
There's a lot of warnings here, and perhaps another fix is required to make sure that the configs are set correctly? I can certainly take a look in another patch but AFAICT this isn't an issue with my patch.
Please accept my apologies for taking your time, we will look into it.
Best Regards, Rong Chen
On 11/11/2018 10:18 PM, Rong Chen wrote:
On 10/29/2018 11:15 PM, Prarit Bhargava wrote:
On 10/29/2018 09:56 AM, kbuild test robot wrote:
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...
base: https://github.com/fuweitax/linux master config: m68k-multi_defconfig (attached as .config) compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=m68k
All errors (new ones prefixed by >>):
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo': drivers/video/fbdev/core/fbcon.c:680:13: error: invalid storage class for
function 'set_blitting_type' static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:680:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement] static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~ drivers/video/fbdev/core/fbcon.c:690:12: error: invalid storage class for function 'fbcon_invalid_charcount' static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) ^~~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo' static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo' static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^~~~~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display' static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map' static int set_con2fb_map(int unit, int newidx, int user) ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display' static int var_to_display(struct display *disp, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var' static void display_to_var(struct fb_var_screeninfo *var, ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup' static const char *fbcon_startup(void) ^~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init' static void fbcon_init(struct vc_data *vc, int init) ^~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font' static void fbcon_free_font(struct display *p, bool freefont) ^~~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font' static void set_vc_hi_font(struct vc_data *vc, bool set); ^~~~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit' static void fbcon_deinit(struct vc_data *vc) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit':
drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'seq_path_root'? [-Werror=implicit-function-declaration]
set_vc_hi_font(vc, false); ^~~~~~~~~~~~~~
Hmm ... this doesn't look like anything that is at fault with my patch.
There's a lot of warnings here, and perhaps another fix is required to make sure that the configs are set correctly? I can certainly take a look in another patch but AFAICT this isn't an issue with my patch.
Please accept my apologies for taking your time, we will look into it.
Rong, it turns out that this was a bug in my patch. I have posted a new patch that resolves the above compile issue.
P.
Best Regards, Rong Chen
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... base: https://github.com/fuweitax/linux master config: i386-randconfig-x005-201843 (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=i386
All error/warnings (new ones prefixed by >>):
drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo':
drivers/video/fbdev/core/fbcon.c:655:13: error: invalid storage class for function 'set_blitting_type'
static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:655:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^~~~~~
drivers/video/fbdev/core/fbcon.c:669:12: error: invalid storage class for function 'fbcon_invalid_charcount'
static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) ^~~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:698:12: error: invalid storage class for function 'con2fb_acquire_newinfo'
static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:734:12: error: invalid storage class for function 'con2fb_release_oldinfo'
static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^~~~~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:780:13: error: invalid storage class for function 'con2fb_init_display'
static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:825:12: error: invalid storage class for function 'set_con2fb_map'
static int set_con2fb_map(int unit, int newidx, int user) ^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:882:12: error: invalid storage class for function 'var_to_display'
static int var_to_display(struct display *disp, ^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:906:13: error: invalid storage class for function 'display_to_var'
static void display_to_var(struct fb_var_screeninfo *var, ^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:925:20: error: invalid storage class for function 'fbcon_startup'
static const char *fbcon_startup(void) ^~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1036:13: error: invalid storage class for function 'fbcon_init'
static void fbcon_init(struct vc_data *vc, int init) ^~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1183:13: error: invalid storage class for function 'fbcon_free_font'
static void fbcon_free_font(struct display *p, bool freefont) ^~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1191:13: error: invalid storage class for function 'set_vc_hi_font'
static void set_vc_hi_font(struct vc_data *vc, bool set); ^~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1193:13: error: invalid storage class for function 'fbcon_deinit'
static void fbcon_deinit(struct vc_data *vc) ^~~~~~~~~~~~ drivers/video/fbdev/core/fbcon.c: In function 'fbcon_deinit':
drivers/video/fbdev/core/fbcon.c:1229:3: error: implicit declaration of function 'set_vc_hi_font'; did you mean 'set_page_zone'? [-Werror=implicit-function-declaration]
set_vc_hi_font(vc, false); ^~~~~~~~~~~~~~ set_page_zone drivers/video/fbdev/core/fbcon.c: In function 'fbcon_prepare_logo':
drivers/video/fbdev/core/fbcon.c:1262:13: error: invalid storage class for function 'fbcon_clear'
static void fbcon_clear(struct vc_data *vc, int sy, int sx, int height, ^~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1300:13: error: invalid storage class for function 'fbcon_putcs'
static void fbcon_putcs(struct vc_data *vc, const unsigned short *s, ^~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1313:13: error: invalid storage class for function 'fbcon_putc'
static void fbcon_putc(struct vc_data *vc, int c, int ypos, int xpos) ^~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1321:13: error: invalid storage class for function 'fbcon_clear_margins'
static void fbcon_clear_margins(struct vc_data *vc, int bottom_only) ^~~~~~~~~~~~~~~~~~~
drivers/video/fbdev/core/fbcon.c:1330:13: error: invalid storage class for function 'fbcon_cursor'
static void fbcon_cursor(struct vc_data *vc, int mode) ^~~~~~~~~~~~
vim +/set_blitting_type +655 drivers/video/fbdev/core/fbcon.c
^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 653 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 654 #ifdef CONFIG_FB_TILEBLITTING b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 @655 static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 656 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 657 struct fbcon_ops *ops = info->fbcon_par; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 658 b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 659 ops->p = &fb_display[vc->vc_num]; ab767201 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-13 660 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 661 if ((info->flags & FBINFO_MISC_TILEBLITTING)) b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 662 fbcon_set_tileops(vc, info); e4fc2761 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-08 663 else { b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 664 fbcon_set_rotation(info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 665 fbcon_set_bitops(ops); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 666 } e4fc2761 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-08 667 } 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 668 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 @669 static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 670 { 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 671 int err = 0; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 672 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 673 if (info->flags & FBINFO_MISC_TILEBLITTING && 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 674 info->tileops->fb_get_tilemax(info) < charcount) 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 675 err = 1; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 676 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 677 return err; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 678 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 679 #else b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 680 static void set_blitting_type(struct vc_data *vc, struct fb_info *info) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 681 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 682 struct fbcon_ops *ops = info->fbcon_par; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 683 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 684 info->flags &= ~FBINFO_MISC_TILEBLITTING; b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 685 ops->p = &fb_display[vc->vc_num]; b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 686 fbcon_set_rotation(info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 687 fbcon_set_bitops(ops); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 688 } 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 689 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 690 static int fbcon_invalid_charcount(struct fb_info *info, unsigned charcount) 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 691 { 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 692 return 0; 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 693 } 38b4982c drivers/video/console/fbcon.c Antonino A. Daplas 2007-05-08 694 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 695 #endif /* CONFIG_MISC_TILEBLITTING */ ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 696 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 697 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @698 static int con2fb_acquire_newinfo(struct vc_data *vc, struct fb_info *info, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 699 int unit, int oldidx) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 700 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 701 struct fbcon_ops *ops = NULL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 702 int err = 0; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 703 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 704 if (!try_module_get(info->fbops->owner)) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 705 err = -ENODEV; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 706 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 707 if (!err && info->fbops->fb_open && ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 708 info->fbops->fb_open(info, 0)) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 709 err = -ENODEV; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 710 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 711 if (!err) { a39bc34e drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 712 ops = kzalloc(sizeof(struct fbcon_ops), GFP_KERNEL); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 713 if (!ops) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 714 err = -ENOMEM; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 715 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 716 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 717 if (!err) { a1e533ec drivers/video/console/fbcon.c Jean-Philippe Brucker 2016-02-15 718 ops->cur_blink_jiffies = HZ / 5; 6c789357 drivers/video/fbdev/core/fbcon.c Kees Cook 2017-11-10 719 ops->info = info; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 720 info->fbcon_par = ops; d1baa4ff drivers/video/console/fbcon.c Antonino A. Daplas 2007-07-17 721 d1baa4ff drivers/video/console/fbcon.c Antonino A. Daplas 2007-07-17 722 if (vc) b73deed3 drivers/video/console/fbcon.c Antonino A. Daplas 2006-01-09 723 set_blitting_type(vc, info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 724 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 725 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 726 if (err) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 727 con2fb_map[unit] = oldidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 728 module_put(info->fbops->owner); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 729 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 730 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 731 return err; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 732 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 733 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @734 static int con2fb_release_oldinfo(struct vc_data *vc, struct fb_info *oldinfo, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 735 struct fb_info *newinfo, int unit, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 736 int oldidx, int found) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 737 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 738 struct fbcon_ops *ops = oldinfo->fbcon_par; 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 739 int err = 0, ret; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 740 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 741 if (oldinfo->fbops->fb_release && ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 742 oldinfo->fbops->fb_release(oldinfo, 0)) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 743 con2fb_map[unit] = oldidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 744 if (!found && newinfo->fbops->fb_release) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 745 newinfo->fbops->fb_release(newinfo, 0); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 746 if (!found) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 747 module_put(newinfo->fbops->owner); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 748 err = -ENODEV; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 749 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 750 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 751 if (!err) { 88fb2c6e drivers/video/console/fbcon.c Antonino A. Daplas 2005-09-09 752 fbcon_del_cursor_timer(oldinfo); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 753 kfree(ops->cursor_state.mask); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 754 kfree(ops->cursor_data); 7a966fbd drivers/video/console/fbcon.c Masami Ichikawa 2014-04-23 755 kfree(ops->cursor_src); e4fc2761 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-08 756 kfree(ops->fontbuffer); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 757 kfree(oldinfo->fbcon_par); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 758 oldinfo->fbcon_par = NULL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 759 module_put(oldinfo->fbops->owner); dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 760 /* dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 761 If oldinfo and newinfo are driving the same hardware, dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 762 the fb_release() method of oldinfo may attempt to dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 763 restore the hardware state. This will leave the dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 764 newinfo in an undefined state. Thus, a call to dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 765 fb_set_par() may be needed for the newinfo. dd0314f7 drivers/video/console/fbcon.c Antonino A. Daplas 2005-11-07 766 */ 5f4dc28b drivers/video/console/fbcon.c Keith Packard 2014-01-20 767 if (newinfo && newinfo->fbops->fb_set_par) { 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 768 ret = newinfo->fbops->fb_set_par(newinfo); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 769 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 770 if (ret) 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 771 printk(KERN_ERR "con2fb_release_oldinfo: " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 772 "detected unhandled fb_set_par error, " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 773 "error code %d\n", ret); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 774 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 775 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 776 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 777 return err; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 778 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 779 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @780 static void con2fb_init_display(struct vc_data *vc, struct fb_info *info, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 781 int unit, int show_logo) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 782 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 783 struct fbcon_ops *ops = info->fbcon_par; 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 784 int ret; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 785 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 786 ops->currcon = fg_console; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 787 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 788 if (info->fbops->fb_set_par && !(ops->flags & FBCON_FLAGS_INIT)) { 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 789 ret = info->fbops->fb_set_par(info); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 790 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 791 if (ret) 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 792 printk(KERN_ERR "con2fb_init_display: detected " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 793 "unhandled fb_set_par error, " 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 794 "error code %d\n", ret); 0fcf6ada drivers/video/console/fbcon.c Florian Tobias Schandinat 2009-09-22 795 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 796 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 797 ops->flags |= FBCON_FLAGS_INIT; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 798 ops->graphics = 0; d1baa4ff drivers/video/console/fbcon.c Antonino A. Daplas 2007-07-17 799 fbcon_set_disp(info, &info->var, unit); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 800 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 801 if (show_logo) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 802 struct vc_data *fg_vc = vc_cons[fg_console].d; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 803 struct fb_info *fg_info = ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 804 registered_fb[con2fb_map[fg_console]]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 805 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 806 fbcon_prepare_logo(fg_vc, fg_info, fg_vc->vc_cols, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 807 fg_vc->vc_rows, fg_vc->vc_cols, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 808 fg_vc->vc_rows); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 809 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 810 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 811 update_screen(vc_cons[fg_console].d); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 812 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 813 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 814 /** ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 815 * set_con2fb_map - map console to frame buffer device ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 816 * @unit: virtual console number to map ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 817 * @newidx: frame buffer index to map virtual console to ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 818 * @user: user request ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 819 * ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 820 * Maps a virtual console @unit to a frame buffer device ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 821 * @newidx. 054430e7 drivers/video/console/fbcon.c Dave Airlie 2013-01-25 822 * 054430e7 drivers/video/console/fbcon.c Dave Airlie 2013-01-25 823 * This should be called with the console lock held. ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 824 */ ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 @825 static int set_con2fb_map(int unit, int newidx, int user) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 826 { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 827 struct vc_data *vc = vc_cons[unit].d; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 828 int oldidx = con2fb_map[unit]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 829 struct fb_info *info = registered_fb[newidx]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 830 struct fb_info *oldinfo = NULL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 831 int found, err = 0; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 832 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 833 if (oldidx == newidx) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 834 return 0; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 835 32b98bf8 drivers/video/console/fbcon.c Dave Airlie 2010-12-21 836 if (!info) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 837 return -EINVAL; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 838 32b98bf8 drivers/video/console/fbcon.c Dave Airlie 2010-12-21 839 if (!search_for_mapped_con() || !con_is_bound(&fb_con)) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 840 info_idx = newidx; 054430e7 drivers/video/console/fbcon.c Dave Airlie 2013-01-25 841 return do_fbcon_takeover(0); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 842 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 843 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 844 if (oldidx != -1) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 845 oldinfo = registered_fb[oldidx]; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 846 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 847 found = search_fb_in_map(newidx); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 848 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 849 con2fb_map[unit] = newidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 850 if (!err && !found) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 851 err = con2fb_acquire_newinfo(vc, info, unit, oldidx); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 852 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 853 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 854 /* ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 855 * If old fb is not mapped to any of the consoles, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 856 * fbcon should release it. ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 857 */ ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 858 if (!err && oldinfo && !search_fb_in_map(oldidx)) ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 859 err = con2fb_release_oldinfo(vc, oldinfo, info, unit, oldidx, ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 860 found); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 861 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 862 if (!err) { ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 863 int show_logo = (fg_console == 0 && !user && ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 864 logo_shown != FBCON_LOGO_DONTSHOW); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 865 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 866 if (!found) 88fb2c6e drivers/video/console/fbcon.c Antonino A. Daplas 2005-09-09 867 fbcon_add_cursor_timer(info); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 868 con2fb_map_boot[unit] = newidx; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 869 con2fb_init_display(vc, info, unit, show_logo); ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 870 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 871 e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 872 if (!search_fb_in_map(info_idx)) e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 873 info_idx = newidx; e614b18d drivers/video/console/fbcon.c Antonino A. Daplas 2006-06-26 874 ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 875 return err; ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 876 } ^1da177e drivers/video/console/fbcon.c Linus Torvalds 2005-04-16 877
:::::: The code at line 655 was first introduced by commit :::::: b73deed32d08740bdbf5f4aab43d988e4d135d95 [PATCH] fbcon: Sanitize fbcon
:::::: TO: Antonino A. Daplas adaplas@gmail.com :::::: CC: Linus Torvalds torvalds@g5.osdl.org
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
On Mon, Oct 29, 2018 at 09:02:32AM -0400, Prarit Bhargava wrote:
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.p...
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.
Signed-off-by: Prarit Bhargava prarit@redhat.com Cc: Hans de Goede hdegoede@redhat.com Cc: Marko Myllynen myllynen@redhat.com 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 Cc: Steven Rostedt (VMware) rostedt@goodmis.org
drivers/video/fbdev/core/fbcon.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index 75ebbbf0a1fb..a2f2c7ea11ef 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;
You're missing a closing } here (well, you really shouldn't have the opening { in the first place since this is a single line block.
That's what's causing the warnings from the 0-day builder.
Thierry
On 10/29/2018 11:24 AM, Thierry Reding wrote:
On Mon, Oct 29, 2018 at 09:02:32AM -0400, Prarit Bhargava wrote:
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.p...
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.
Signed-off-by: Prarit Bhargava prarit@redhat.com Cc: Hans de Goede hdegoede@redhat.com Cc: Marko Myllynen myllynen@redhat.com 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 Cc: Steven Rostedt (VMware) rostedt@goodmis.org
drivers/video/fbdev/core/fbcon.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/video/fbdev/core/fbcon.c b/drivers/video/fbdev/core/fbcon.c index 75ebbbf0a1fb..a2f2c7ea11ef 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;
You're missing a closing } here (well, you really shouldn't have the opening { in the first place since this is a single line block.
That's what's causing the warnings from the 0-day builder.
Will send v2.
P.
Thierry
dri-devel@lists.freedesktop.org