diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-11-17 01:28:11 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-11-17 01:28:11 +0100 |
commit | 1a782fda3e0fcc3205dc4b2a9b6ef3a75f68efb7 (patch) | |
tree | 13bb6137aa1ca75ba0b84524c48de55c44caaa17 /sys/src/9/pc64/trap.c | |
parent | 78d2a52577c39f5f580b925931aa1ffbdc3d16be (diff) |
pc64: check if vmap() range fits in VMAPLEN window, remove unneeded vmapsync(), rename fault386() to faultamd64()
Diffstat (limited to 'sys/src/9/pc64/trap.c')
-rw-r--r-- | sys/src/9/pc64/trap.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sys/src/9/pc64/trap.c b/sys/src/9/pc64/trap.c index e84b199a3..4c64d201e 100644 --- a/sys/src/9/pc64/trap.c +++ b/sys/src/9/pc64/trap.c @@ -14,7 +14,7 @@ static int trapinited; void noted(Ureg*, ulong); static void debugbpt(Ureg*, void*); -static void fault386(Ureg*, void*); +static void faultamd64(Ureg*, void*); static void doublefault(Ureg*, void*); static void unexpected(Ureg*, void*); static void _dumpstack(Ureg*); @@ -225,7 +225,7 @@ trapinit(void) * Syscall() is called directly without going through trap(). */ trapenable(VectorBPT, debugbpt, 0, "debugpt"); - trapenable(VectorPF, fault386, 0, "fault386"); + trapenable(VectorPF, faultamd64, 0, "faultamd64"); trapenable(Vector2F, doublefault, 0, "doublefault"); trapenable(Vector15, unexpected, 0, "unexpected"); nmienable(); @@ -315,9 +315,9 @@ trap(Ureg *ureg) Mach *mach; if(!trapinited){ - /* fault386 can give a better error message */ + /* faultamd64 can give a better error message */ if(ureg->type == VectorPF) - fault386(ureg, nil); + faultamd64(ureg, nil); panic("trap %llud: not ready", ureg->type); } @@ -614,7 +614,7 @@ unexpected(Ureg* ureg, void*) extern void checkpages(void); static void -fault386(Ureg* ureg, void*) +faultamd64(Ureg* ureg, void*) { uintptr addr; int read, user, n, insyscall; @@ -624,8 +624,6 @@ fault386(Ureg* ureg, void*) read = !(ureg->error & 2); user = userureg(ureg); if(!user){ - if(vmapsync(addr)) - return; if(addr >= USTKTOP) panic("kernel fault: bad address pc=%#p addr=%#p", ureg->pc, addr); if(up == nil) |