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,