| 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);