Module Name: src Committed By: rmind Date: Mon Jun 28 00:39:47 UTC 2010
Modified Files: src/sys/arch/x86/x86: vga_post.c Log Message: Add missing pmap_update() in vga_post_init(), remove wrong pmap_kremove() in error path, and fix pmap_update() in vga_post_set_vbe(). To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/x86/x86/vga_post.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/arch/x86/x86/vga_post.c diff -u src/sys/arch/x86/x86/vga_post.c:1.14 src/sys/arch/x86/x86/vga_post.c:1.15 --- src/sys/arch/x86/x86/vga_post.c:1.14 Sat Nov 7 07:27:49 2009 +++ src/sys/arch/x86/x86/vga_post.c Mon Jun 28 00:39:47 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vga_post.c,v 1.14 2009/11/07 07:27:49 cegger Exp $ */ +/* $NetBSD: vga_post.c,v 1.15 2010/06/28 00:39:47 rmind Exp $ */ /*- * Copyright (c) 2007 Joerg Sonnenberger <jo...@netbsd.org>. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vga_post.c,v 1.14 2009/11/07 07:27:49 cegger Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vga_post.c,v 1.15 2010/06/28 00:39:47 rmind Exp $"); #include <sys/param.h> #include <sys/device.h> @@ -160,7 +160,6 @@ if (err) { uvm_km_free(kernel_map, sc->sys_image, 1024 * 1024, UVM_KMF_VAONLY); - pmap_kremove(sc->sys_image, 1024 * 1024); kmem_free(sc, sizeof(*sc)); return NULL; } @@ -170,8 +169,11 @@ pmap_kenter_pa(sys_bios_data, 0, VM_PROT_READ, 0); pmap_update(pmap_kernel()); + memcpy((void *)sc->bios_data, (void *)sys_bios_data, PAGE_SIZE); + pmap_kremove(sys_bios_data, PAGE_SIZE); + pmap_update(pmap_kernel()); uvm_km_free(kernel_map, sys_bios_data, PAGE_SIZE, UVM_KMF_VAONLY); iter = 0; @@ -237,10 +239,11 @@ void vga_post_free(struct vga_post *sc) { + uvm_pglistfree(&sc->ram_backing); pmap_kremove(sc->sys_image, 1024 * 1024); - uvm_km_free(kernel_map, sc->sys_image, 1024 * 1024, UVM_KMF_VAONLY); pmap_update(pmap_kernel()); + uvm_km_free(kernel_map, sc->sys_image, 1024 * 1024, UVM_KMF_VAONLY); kmem_free(sc, sizeof(*sc)); }