Module Name:    src
Committed By:   macallan
Date:           Tue Jul 30 19:21:51 UTC 2013

Modified Files:
        src/sys/dev/pci: machfb.c pm2fb.c r128fb.c tdvfb.c voodoofb.c
        src/sys/dev/pci/voyager: voyagerfb.c

Log Message:
avoid uninitialized use of defattr


To generate a diff of this commit:
cvs rdiff -u -r1.87 -r1.88 src/sys/dev/pci/machfb.c
cvs rdiff -u -r1.22 -r1.23 src/sys/dev/pci/pm2fb.c
cvs rdiff -u -r1.36 -r1.37 src/sys/dev/pci/r128fb.c
cvs rdiff -u -r1.5 -r1.6 src/sys/dev/pci/tdvfb.c
cvs rdiff -u -r1.44 -r1.45 src/sys/dev/pci/voodoofb.c
cvs rdiff -u -r1.25 -r1.26 src/sys/dev/pci/voyager/voyagerfb.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/dev/pci/machfb.c
diff -u src/sys/dev/pci/machfb.c:1.87 src/sys/dev/pci/machfb.c:1.88
--- src/sys/dev/pci/machfb.c:1.87	Tue May 28 10:55:34 2013
+++ src/sys/dev/pci/machfb.c	Tue Jul 30 19:21:50 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: machfb.c,v 1.87 2013/05/28 10:55:34 macallan Exp $	*/
+/*	$NetBSD: machfb.c,v 1.88 2013/07/30 19:21:50 macallan Exp $	*/
 
 /*
  * Copyright (c) 2002 Bang Jun-Young
@@ -34,7 +34,7 @@
 
 #include <sys/cdefs.h>
 __KERNEL_RCSID(0, 
-	"$NetBSD: machfb.c,v 1.87 2013/05/28 10:55:34 macallan Exp $");
+	"$NetBSD: machfb.c,v 1.88 2013/07/30 19:21:50 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -796,7 +796,8 @@ mach64_attach(device_t parent, device_t 
 			/* do some minimal setup to avoid weirdnesses later */
 			vcons_init_screen(&sc->vd, &mach64_console_screen, 1,
 			    &defattr);
-		}
+		} else
+			(*ri->ri_ops.allocattr)(ri, 0, 0, 0, &defattr);
 
 		glyphcache_init(&sc->sc_gc, sc->sc_my_mode->vdisplay + 5,
 		    ((sc->memsize * 1024) / sc->sc_my_mode->hdisplay) -

Index: src/sys/dev/pci/pm2fb.c
diff -u src/sys/dev/pci/pm2fb.c:1.22 src/sys/dev/pci/pm2fb.c:1.23
--- src/sys/dev/pci/pm2fb.c:1.22	Fri Jun 28 15:26:57 2013
+++ src/sys/dev/pci/pm2fb.c	Tue Jul 30 19:21:50 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: pm2fb.c,v 1.22 2013/06/28 15:26:57 christos Exp $	*/
+/*	$NetBSD: pm2fb.c,v 1.23 2013/07/30 19:21:50 macallan Exp $	*/
 
 /*
  * Copyright (c) 2009, 2012 Michael Lorenz
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pm2fb.c,v 1.22 2013/06/28 15:26:57 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pm2fb.c,v 1.23 2013/07/30 19:21:50 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -405,7 +405,8 @@ pm2fb_attach(device_t parent, device_t s
 			/* do some minimal setup to avoid weirdnesses later */
 			vcons_init_screen(&sc->vd, &sc->sc_console_screen, 1, 
 			   &defattr);
-		}
+		} else
+			(*ri->ri_ops.allocattr)(ri, 0, 0, 0, &defattr);
 		glyphcache_init(&sc->sc_gc, sc->sc_height + 5,
 			   min(2047, (sc->sc_fbsize / sc->sc_stride))
 			    - sc->sc_height - 5,
@@ -502,9 +503,16 @@ pm2fb_ioctl(void *v, void *vs, u_long cm
 		if (new_mode != sc->sc_mode) {
 			sc->sc_mode = new_mode;
 			if(new_mode == WSDISPLAYIO_MODE_EMUL) {
+				/* first set the video mode */
+				if (sc->sc_videomode != NULL) {
+					pm2fb_set_mode(sc, sc->sc_videomode);
+				}
+				/* then initialize the drawing engine */
 				pm2fb_init(sc);
 				pm2fb_restore_palette(sc);
+				/* clean out the glyph cache */
 				glyphcache_wipe(&sc->sc_gc);
+				/* and redraw everything */
 				vcons_redraw_screen(ms);
 			} else
 				pm2fb_flush_engine(sc);

Index: src/sys/dev/pci/r128fb.c
diff -u src/sys/dev/pci/r128fb.c:1.36 src/sys/dev/pci/r128fb.c:1.37
--- src/sys/dev/pci/r128fb.c:1.36	Thu Oct  4 10:22:45 2012
+++ src/sys/dev/pci/r128fb.c	Tue Jul 30 19:21:50 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: r128fb.c,v 1.36 2012/10/04 10:22:45 macallan Exp $	*/
+/*	$NetBSD: r128fb.c,v 1.37 2013/07/30 19:21:50 macallan Exp $	*/
 
 /*
  * Copyright (c) 2007, 2012 Michael Lorenz
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: r128fb.c,v 1.36 2012/10/04 10:22:45 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: r128fb.c,v 1.37 2013/07/30 19:21:50 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -311,7 +311,8 @@ r128fb_attach(device_t parent, device_t 
 			/* do some minimal setup to avoid weirdnesses later */
 			vcons_init_screen(&sc->vd, &sc->sc_console_screen, 1,
 			    &defattr);
-		}
+		} else
+			(*ri->ri_ops.allocattr)(ri, 0, 0, 0, &defattr);
 		glyphcache_init(&sc->sc_gc, sc->sc_height + 5,
 				(0x800000 / sc->sc_stride) - sc->sc_height - 5,
 				sc->sc_width,

Index: src/sys/dev/pci/tdvfb.c
diff -u src/sys/dev/pci/tdvfb.c:1.5 src/sys/dev/pci/tdvfb.c:1.6
--- src/sys/dev/pci/tdvfb.c:1.5	Thu Jan 31 11:57:07 2013
+++ src/sys/dev/pci/tdvfb.c	Tue Jul 30 19:21:50 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: tdvfb.c,v 1.5 2013/01/31 11:57:07 rkujawa Exp $	*/
+/*	$NetBSD: tdvfb.c,v 1.6 2013/07/30 19:21:50 macallan Exp $	*/
 
 /*
  * Copyright (c) 2012 The NetBSD Foundation, Inc.   
@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tdvfb.c,v 1.5 2013/01/31 11:57:07 rkujawa Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tdvfb.c,v 1.6 2013/07/30 19:21:50 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -266,9 +266,12 @@ tdvfb_attach(device_t parent, device_t s
 		wsdisplay_cnattach(&sc->sc_defaultscreen_descr, ri, 0, 0,
 		    defattr);
 		vcons_replay_msgbuf(&sc->sc_console_screen);
-	} else if (sc->sc_console_screen.scr_ri.ri_rows == 0) {
-		vcons_init_screen(&sc->vd, &sc->sc_console_screen, 1,
-		    &defattr);
+	} else {
+		if (sc->sc_console_screen.scr_ri.ri_rows == 0) {
+			vcons_init_screen(&sc->vd, &sc->sc_console_screen, 1,
+			    &defattr);
+		} else
+			(*ri->ri_ops.allocattr)(ri, 0, 0, 0, &defattr);
 	}
 
 	ws_aa.console = console;

Index: src/sys/dev/pci/voodoofb.c
diff -u src/sys/dev/pci/voodoofb.c:1.44 src/sys/dev/pci/voodoofb.c:1.45
--- src/sys/dev/pci/voodoofb.c:1.44	Tue Jul  2 00:18:24 2013
+++ src/sys/dev/pci/voodoofb.c	Tue Jul 30 19:21:50 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: voodoofb.c,v 1.44 2013/07/02 00:18:24 joerg Exp $	*/
+/*	$NetBSD: voodoofb.c,v 1.45 2013/07/30 19:21:50 macallan Exp $	*/
 
 /*
  * Copyright (c) 2005, 2006, 2012 Michael Lorenz
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: voodoofb.c,v 1.44 2013/07/02 00:18:24 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: voodoofb.c,v 1.45 2013/07/30 19:21:50 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -463,11 +463,12 @@ voodoofb_attach(device_t parent, device_
 		voodoofb_defaultscreen.ncols = ri->ri_cols;
 		wsdisplay_cnattach(&voodoofb_defaultscreen, ri, 0, 0, defattr);
 	} else {
-		/*
-		 * since we're not the console we can postpone the rest
-		 * until someone actually allocates a screen for us
-		 */
-		voodoofb_set_videomode(sc, sc->sc_videomode);		 
+		if (voodoofb_console_screen.scr_ri.ri_rows == 0) {
+			/* do some minimal setup to avoid weirdnesses later */
+			vcons_init_screen(&sc->vd, &voodoofb_console_screen,
+			    1, &defattr);
+		} else
+			(*ri->ri_ops.allocattr)(ri, 0, 0, 0, &defattr);
 	}
 
 	printf("%s: %d MB aperture at 0x%08x, %d MB registers at 0x%08x\n",

Index: src/sys/dev/pci/voyager/voyagerfb.c
diff -u src/sys/dev/pci/voyager/voyagerfb.c:1.25 src/sys/dev/pci/voyager/voyagerfb.c:1.26
--- src/sys/dev/pci/voyager/voyagerfb.c:1.25	Tue Mar 19 16:49:56 2013
+++ src/sys/dev/pci/voyager/voyagerfb.c	Tue Jul 30 19:21:50 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: voyagerfb.c,v 1.25 2013/03/19 16:49:56 macallan Exp $	*/
+/*	$NetBSD: voyagerfb.c,v 1.26 2013/07/30 19:21:50 macallan Exp $	*/
 
 /*
  * Copyright (c) 2009, 2011 Michael Lorenz
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: voyagerfb.c,v 1.25 2013/03/19 16:49:56 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: voyagerfb.c,v 1.26 2013/07/30 19:21:50 macallan Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -321,7 +321,8 @@ voyagerfb_attach(device_t parent, device
 			/* do some minimal setup to avoid weirdness later */
 			vcons_init_screen(&sc->vd, &sc->sc_console_screen, 1,
 			    &defattr);
-		}
+		} else
+			(*ri->ri_ops.allocattr)(ri, 0, 0, 0, &defattr);
 	}
 	glyphcache_init(&sc->sc_gc, sc->sc_height,
 			(sc->sc_fbsize / sc->sc_stride) - sc->sc_height,

Reply via email to