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,