From a1e15b03dae1c50172d5d801bfbb087fdaaeef0c Mon Sep 17 00:00:00 2001 From: Chloe M Date: Wed, 15 Jul 2026 05:25:10 -0400 Subject: [PATCH] ptos/amd64: context: Only update TSS if PS_USER Signed-off-by: Chloe M --- service/ptos/arch/amd64/ps/context.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/service/ptos/arch/amd64/ps/context.c b/service/ptos/arch/amd64/ps/context.c index f0c9801..fed871d 100644 --- a/service/ptos/arch/amd64/ps/context.c +++ b/service/ptos/arch/amd64/ps/context.c @@ -59,10 +59,12 @@ HalContextSwitch(TRAP_FRAME *Frame) HalMmuWriteVas(&NextParent->Vas); /* Update the task state segment with kstack */ - KStackTop = NextTcb->KStackBase + NextTcb->KStackLength; - Tss = Mcb->Tss; - Tss->Rsp0Low = KStackTop & 0xFFFFFFFF; - Tss->Rsp0High = (KStackTop >> 32) & 0xFFFFFFFF; + if (ISSET(NextParent->Flags, PS_USER)) { + KStackTop = NextTcb->KStackBase + NextTcb->KStackLength; + Tss = Mcb->Tss; + Tss->Rsp0Low = KStackTop & 0xFFFFFFFF; + Tss->Rsp0High = (KStackTop >> 32) & 0xFFFFFFFF; + } /* Context switch here */ Kpcr->CurrentThread = NextThread;