From a7081490dbeda19788e6374a080ee38606aa3cd3 Mon Sep 17 00:00:00 2001 From: glenda Date: Wed, 14 May 2025 01:33:55 +0000 Subject: kernel: get rid of Proc.kstack The kernel stack is now above the Proc structure, so the explicit kstack pointer can be eliminated. --- sys/src/9/xen/mmu.c | 4 ++-- sys/src/9/xen/trap.c | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'sys/src/9/xen') diff --git a/sys/src/9/xen/mmu.c b/sys/src/9/xen/mmu.c index 250d08371..03017e88d 100644 --- a/sys/src/9/xen/mmu.c +++ b/sys/src/9/xen/mmu.c @@ -237,10 +237,10 @@ mmuswitch(Proc* proc) //XXX doesn't work for some reason, but it's not needed for uniprocessor //pdb = (ulong*)proc->mmupdb->va; //xenupdate(&pdb[PDX(MACHADDR)], m->pdb[PDX(MACHADDR)]); - taskswitch(proc->mmupdb, (ulong)(proc->kstack+KSTACK)); + taskswitch(proc->mmupdb, (ulong)proc); } else - taskswitch(0, (ulong)(proc->kstack+KSTACK)); + taskswitch(0, (ulong)proc); } void diff --git a/sys/src/9/xen/trap.c b/sys/src/9/xen/trap.c index 72f7e98eb..7527461fc 100644 --- a/sys/src/9/xen/trap.c +++ b/sys/src/9/xen/trap.c @@ -263,9 +263,9 @@ _dumpstack(Ureg *ureg) x += print("ktrace /kernel/path %.8lux %.8lux <pc, ureg->sp); i = 0; if(up - && (ulong)&l >= (ulong)up->kstack - && (ulong)&l <= (ulong)up->kstack+KSTACK) - estack = (ulong)up->kstack+KSTACK; + && (ulong)&l >= (ulong)up - KSTACK + && (ulong)&l <= (ulong)up) + estack = (ulong)up; else if((ulong)&l >= (ulong)m->stack && (ulong)&l <= (ulong)m+BY2PG) estack = (ulong)m+MACHSIZE; @@ -710,7 +710,7 @@ kprocchild(Proc *p, void (*entry)(void)) * to linkproc(). */ p->sched.pc = (ulong)entry; - p->sched.sp = (ulong)p->kstack+KSTACK-BY2WD; + p->sched.sp = (ulong)p - BY2WD; } void @@ -723,7 +723,7 @@ forkchild(Proc *p, Ureg *ureg) * - the return PC * - trap's argument (ur) */ - p->sched.sp = (ulong)p->kstack+KSTACK-(sizeof(Ureg)+2*BY2WD); + p->sched.sp = (ulong)p - (sizeof(Ureg)+2*BY2WD); p->sched.pc = (ulong)forkret; cureg = (Ureg*)(p->sched.sp+2*BY2WD); -- cgit v1.2.3