---
i386/i386/pcb.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/i386/i386/pcb.c b/i386/i386/pcb.c
index 21f9e06a..7098bf33 100644
--- a/i386/i386/pcb.c
+++ b/i386/i386/pcb.c
@@ -230,7 +230,9 @@ void switch_ktss(pcb_t pcb)
#if defined(__x86_64__) && !defined(USER32)
wrmsr(MSR_REG_FSBASE, pcb->ims.sbs.fsbase);
- wrmsr(MSR_REG_GSBASE, pcb->ims.sbs.gsbase);
+ /* Dont load zero into gs base, could be a kernel thread */
+ if (pcb->ims.sbs.gsbase != 0)
+ wrmsr(MSR_REG_GSBASE, pcb->ims.sbs.gsbase);
#endif
db_load_context(pcb);
--
2.45.2