[SENT at 2004-03-18]

  Hello,

  this patch (against 2.6.4) 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.

  Please consider applying.

 drivers/video/console/fbcon.c |   22 ++++++++++------------
 1 files changed, 10 insertions(+), 12 deletions(-)

  Kind regards,
                                Petr Baudis

diff -rup linux/drivers/video/console/fbcon.c linux+pasky/drivers/video/console/fbcon.c
--- linux/drivers/video/console/fbcon.c	Thu Mar 18 22:14:28 2004
+++ linux+pasky/drivers/video/console/fbcon.c	Thu Mar 18 21:32:01 2004
@@ -746,19 +746,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) {
