⛏️ index : haiku.git

author Augustin Cavalier <waddlesplash@gmail.com> 2025-04-22 14:41:56.0 -04:00:00
committer Augustin Cavalier <waddlesplash@gmail.com> 2025-04-22 14:41:56.0 -04:00:00
commit
dcc19cb93756d9e7c930554fe4bb9f4f4f26d4d6 [patch]
tree
16d203d32ca04e4733d880ffbb566b6241067ac4
parent
e249d5a241999e1a3ec9974c4cc57cca23f92d32
download
dcc19cb93756d9e7c930554fe4bb9f4f4f26d4d6.tar.gz

kernel/x86: Fix double-fault GS on 32-bit.

This is the same value used lower down outside the double fault stacks.

Fixes KDL in double faults (previously it would cause another fault
trying to read the current thread from TLS.)

Diff

 src/system/kernel/arch/x86/32/descriptors.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/system/kernel/arch/x86/32/descriptors.cpp b/src/system/kernel/arch/x86/32/descriptors.cpp
index 688390e..558c8df 100644
--- a/src/system/kernel/arch/x86/32/descriptors.cpp
+++ b/src/system/kernel/arch/x86/32/descriptors.cpp
@@ -224,7 +224,7 @@
	tss->esp = tss->sp0;
	tss->ds = KERNEL_DATA_SELECTOR;
	tss->fs = KERNEL_DATA_SELECTOR;
	tss->gs = KERNEL_DATA_SELECTOR;
	tss->gs = (KERNEL_TLS_SEGMENT << 3);
	tss->ldt_seg_selector = 0;
	tss->io_map_base = sizeof(struct tss);