summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-03-29 17:00:20 +0200
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-03-29 17:01:17 +0200
commit00fe44e565d0ec292bb06a5677ee175cd0851a69 (patch)
tree33d8c77da25d474a219306af9c376a5c1d431961
parent15955354d26cda32bfb88eb150d5661fe66dc9d0 (diff)
ldt: do not reload kernel LDT if we are already using it
* i386/i386/pcb.c (switch_ktss): Do not call set_ldt(KERNEL_LDT) if get_ldt() is already KERNEL_LDT.
-rw-r--r--i386/i386/pcb.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/i386/i386/pcb.c b/i386/i386/pcb.c
index 743108db..23585323 100644
--- a/i386/i386/pcb.c
+++ b/i386/i386/pcb.c
@@ -169,7 +169,8 @@ void switch_ktss(pcb_t pcb)
#ifdef MACH_PV_DESCRIPTORS
hyp_set_ldt(&ldt, LDTSZ);
#else /* MACH_PV_DESCRIPTORS */
- set_ldt(KERNEL_LDT);
+ if (get_ldt() != KERNEL_LDT)
+ set_ldt(KERNEL_LDT);
#endif /* MACH_PV_DESCRIPTORS */
}
else {