Module Name:    src
Committed By:   matt
Date:           Wed Aug  8 22:10:21 UTC 2012

Modified Files:
        src/sys/arch/mips/include [matt-nb5-mips64]: pmap.h
        src/sys/arch/mips/mips [matt-nb5-mips64]: pmap_segtab.c trap.c

Log Message:
Fix some LP64 bugs


To generate a diff of this commit:
cvs rdiff -u -r1.54.26.27 -r1.54.26.28 src/sys/arch/mips/include/pmap.h
cvs rdiff -u -r1.1.2.18 -r1.1.2.19 src/sys/arch/mips/mips/pmap_segtab.c
cvs rdiff -u -r1.217.12.45 -r1.217.12.46 src/sys/arch/mips/mips/trap.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/include/pmap.h
diff -u src/sys/arch/mips/include/pmap.h:1.54.26.27 src/sys/arch/mips/include/pmap.h:1.54.26.28
--- src/sys/arch/mips/include/pmap.h:1.54.26.27	Sat Aug  4 07:20:31 2012
+++ src/sys/arch/mips/include/pmap.h	Wed Aug  8 22:10:21 2012
@@ -113,7 +113,7 @@ union pt_entry;
 
 typedef union pmap_segtab {
 	union pmap_segtab *	seg_seg[NSEGPG];
-	union pt_entry	*	seg_tab[NPTEPG];
+	union pt_entry	*	seg_tab[NSEGPG];
 } pmap_segtab_t;
 #else
 /*

Index: src/sys/arch/mips/mips/pmap_segtab.c
diff -u src/sys/arch/mips/mips/pmap_segtab.c:1.1.2.18 src/sys/arch/mips/mips/pmap_segtab.c:1.1.2.19
--- src/sys/arch/mips/mips/pmap_segtab.c:1.1.2.18	Sat Aug  4 07:20:31 2012
+++ src/sys/arch/mips/mips/pmap_segtab.c	Wed Aug  8 22:10:21 2012
@@ -130,6 +130,7 @@ __KERNEL_RCSID(0, "pmap_segtab.c,v 1.1.2
 #include <mips/pte.h>
 
 CTASSERT(NBPG >= sizeof(pmap_segtab_t));
+
 #define PMAP_PTP_CACHE
 
 struct pmap_segtab_info {

Index: src/sys/arch/mips/mips/trap.c
diff -u src/sys/arch/mips/mips/trap.c:1.217.12.45 src/sys/arch/mips/mips/trap.c:1.217.12.46
--- src/sys/arch/mips/mips/trap.c:1.217.12.45	Sat Aug  4 07:20:31 2012
+++ src/sys/arch/mips/mips/trap.c	Wed Aug  8 22:10:21 2012
@@ -378,9 +378,9 @@ trap(uint32_t status, uint32_t cause, va
 		 */
 		struct cpu_info * const ci = curcpu();
 		if ((va >> XSEGSHIFT) == 0 &&
-		    __predict_false(ci->ci_pmap_seg0tab == NULL
-				&& ci->ci_pmap_segtab->seg_seg[0] != NULL)) {
-			ci->ci_pmap_seg0tab = ci->ci_pmap_segtab->seg_seg[0];
+		    __predict_false(ci->ci_pmap_seg0tab[0] == NULL
+				&& ci->ci_pmap_segtab[0]->seg_seg[0] != NULL)) {
+			ci->ci_pmap_seg0tab[0] = ci->ci_pmap_segtab[0]->seg_seg[0];
 			kpreempt_enable();
 			if (type & T_USER) {
 				userret(l);

Reply via email to