From: Petr Baudis This patch fixes a bug which I hit when migrating from 2.4. Basically, when I do setfont during the system boot, the then-spawned ttys do not retain the new font but fall back to the default one. I've tracked that down to a clearly bogus test in fbcon_set_display(), because vc->vc_font.width is not set at that time yet (no font has been loaded for the new vc). But even if it would (or this was meant to test against tmp->vc_font.width), it would mean only *HUGE* fonts would be retained. And even if there were *two* bugs there and it was supposed to be less-than there, I couldn't make a sense of the test. --- 25-akpm/drivers/video/console/fbcon.c | 22 ++++++++++------------ 1 files changed, 10 insertions(+), 12 deletions(-) diff -puN drivers/video/console/fbcon.c~fbcon-font-cloning-fix drivers/video/console/fbcon.c --- 25/drivers/video/console/fbcon.c~fbcon-font-cloning-fix 2004-03-23 02:05:27.220965280 -0800 +++ 25-akpm/drivers/video/console/fbcon.c 2004-03-23 02:05:27.223964824 -0800 @@ -662,19 +662,17 @@ static void fbcon_set_display(struct vc_ struct display *q = &fb_display[i]; struct vc_data *tmp = vc_cons[i].d; - if (vc->vc_font.width > 32) { - /* If we are not the first console on this - fb, copy the font from that console */ - vc->vc_font.width = tmp->vc_font.width; - vc->vc_font.height = tmp->vc_font.height; - vc->vc_font.data = p->fontdata = q->fontdata; - p->userfont = q->userfont; - if (p->userfont) { - REFCOUNT(p->fontdata)++; - charcnt = FNTCHARCNT(p->fontdata); - } - con_copy_unimap(vc->vc_num, i); + /* If we are not the first console on this + fb, copy the font from that console */ + vc->vc_font.width = tmp->vc_font.width; + vc->vc_font.height = tmp->vc_font.height; + vc->vc_font.data = p->fontdata = q->fontdata; + p->userfont = q->userfont; + if (p->userfont) { + REFCOUNT(p->fontdata)++; + charcnt = FNTCHARCNT(p->fontdata); } + con_copy_unimap(vc->vc_num, i); } if (!p->fontdata) { _