Module Name: src Committed By: cliff Date: Thu Jan 14 05:02:38 UTC 2010
Modified Files: src/sys/arch/mips/mips [matt-nb5-mips64]: bus_space_alignstride_chipdep.c Log Message: in BS(unmap), instead of assuming KSEG2 bsh address came from uvm_km_alloc, check that the address is NOT (KSEG0 or KSEG1) address. To generate a diff of this commit: cvs rdiff -u -r1.10.18.11 -r1.10.18.12 \ src/sys/arch/mips/mips/bus_space_alignstride_chipdep.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/mips/mips/bus_space_alignstride_chipdep.c diff -u src/sys/arch/mips/mips/bus_space_alignstride_chipdep.c:1.10.18.11 src/sys/arch/mips/mips/bus_space_alignstride_chipdep.c:1.10.18.12 --- src/sys/arch/mips/mips/bus_space_alignstride_chipdep.c:1.10.18.11 Fri Dec 4 01:12:17 2009 +++ src/sys/arch/mips/mips/bus_space_alignstride_chipdep.c Thu Jan 14 05:02:38 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: bus_space_alignstride_chipdep.c,v 1.10.18.11 2009/12/04 01:12:17 cliff Exp $ */ +/* $NetBSD: bus_space_alignstride_chipdep.c,v 1.10.18.12 2010/01/14 05:02:38 cliff Exp $ */ /*- * Copyright (c) 1998, 2000, 2001 The NetBSD Foundation, Inc. @@ -81,7 +81,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bus_space_alignstride_chipdep.c,v 1.10.18.11 2009/12/04 01:12:17 cliff Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bus_space_alignstride_chipdep.c,v 1.10.18.12 2010/01/14 05:02:38 cliff Exp $"); #ifdef CHIP_EXTENT #include <sys/extent.h> @@ -764,8 +764,8 @@ if (va == 0) return ENOMEM; - /* check use of handle_is_kseg2 in BS(unmap) */ - KASSERT((va & ~MIPS_PHYS_MASK) == MIPS_KSEG2_START); + /* check use of handle_is_km in BS(unmap) */ + KASSERT(!(MIPS_KSEG0_P(va) || MIPS_KSEG1_P(va))); *hp = va + (addr & PAGE_MASK); pa = trunc_page(addr); @@ -797,14 +797,11 @@ bus_addr_t addr = 0; /* initialize to appease gcc */ #endif #ifndef _LP64 - bool handle_is_kseg2; + bool handle_is_km; /* determine if h is addr obtained from uvm_km_alloc */ - handle_is_kseg2 = ((h & ~MIPS_PHYS_MASK) == MIPS_KSEG2_START); -#if 0 - printf("%s:%d: is_kseg2 %d\n", __func__, __LINE__, handle_is_kseg2); -#endif - if (handle_is_kseg2 == true) { + handle_is_km = !(MIPS_KSEG0_P(h) || MIPS_KSEG1_P(h)); + if (handle_is_km == true) { paddr_t pa; vaddr_t va = (vaddr_t)trunc_page(h); vsize_t sz = (vsize_t)round_page((h % PAGE_SIZE) + size); @@ -844,7 +841,7 @@ KASSERT(MIPS_XKPHYS_P(h)); addr = MIPS_XKPHYS_TO_PHYS(h); #else - if (handle_is_kseg2 == false) { + if (handle_is_km == false) { if (MIPS_KSEG0_P(h)) addr = MIPS_KSEG0_TO_PHYS(h); else