Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/i386/i386 examine the PDE in addition to the PTE wh...



details:   https://anonhg.NetBSD.org/src/rev/87cf69d5c4b3
branches:  trunk
changeset: 499569:87cf69d5c4b3
user:      chs <chs%NetBSD.org@localhost>
date:      Thu Nov 23 21:44:52 2000 +0000

description:
examine the PDE in addition to the PTE when checking for valid mappings.

diffstat:

 sys/arch/i386/i386/db_disasm.c |  7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diffs (28 lines):

diff -r ccfe9f721b60 -r 87cf69d5c4b3 sys/arch/i386/i386/db_disasm.c
--- a/sys/arch/i386/i386/db_disasm.c    Thu Nov 23 16:26:50 2000 +0000
+++ b/sys/arch/i386/i386/db_disasm.c    Thu Nov 23 21:44:52 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: db_disasm.c,v 1.21 2000/09/06 22:22:27 thorpej Exp $   */
+/*     $NetBSD: db_disasm.c,v 1.22 2000/11/23 21:44:52 chs Exp $       */
 
 /* 
  * Mach Operating System
@@ -1091,7 +1091,7 @@
        int     imm2;
        int     len;
        struct i_addr   address;
-       pt_entry_t *pte;
+       pt_entry_t *pte, *pde;
 
        /*
         * Don't try to disassemble the location if the mapping is invalid.
@@ -1101,7 +1101,8 @@
                pte = kvtopte((vaddr_t)loc);
        else
                pte = vtopte((vaddr_t)loc);
-       if ((*pte & PG_V) == 0) {
+       pde = vtopte((vaddr_t)pte);
+       if ((*pde & PG_V) == 0 || (*pte & PG_V) == 0) {
                db_printf("invalid address\n");
                return (loc);
        }



Home | Main Index | Thread Index | Old Index