From: Petr Baudis <pasky@ucw.cz>

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	Fri Mar 19 15:11:41 2004
+++ 25-akpm/drivers/video/console/fbcon.c	Fri Mar 19 15:11:41 2004
@@ -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) {

_