Messages in this thread Patch in this message | | | Subject | [PATCH] x86, Fix broken LDT access in VMI | From | Zachary Amsden <> | Date | Tue, 30 Sep 2008 11:02:12 -0700 |
| |
This one took a long time to rear up because LDT usage is not very common, but the bug is quite serious. It got introduced along with another bug, already fixed, by 75b8bb3e56ca09a467fbbe5229bc68627f7445be
Please apply. Fix should also be headed for stable tree and backported, it is really sadly trivial. Glauber, Ingo, sorry for the offlist posting, somehow the original missed LKML.
Zach After investigating a JRE failure, I found this bug was introduced a long time ago, and had already managed to survive another bugfix which occurred on the same line. The result is a total failure of the JRE due to LDT selectors not working properly.
Signed-off-by: Zachary Amsden <zach@vmware.com>
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c index 040a95e..411e34f 100644 --- a/arch/x86/kernel/vmi_32.c +++ b/arch/x86/kernel/vmi_32.c @@ -234,7 +234,7 @@ static void vmi_write_ldt_entry(struct desc_struct *dt, int entry, const void *desc) { u32 *ldt_entry = (u32 *)desc; - vmi_ops.write_idt_entry(dt, entry, ldt_entry[0], ldt_entry[1]); + vmi_ops.write_ldt_entry(dt, entry, ldt_entry[0], ldt_entry[1]); } static void vmi_load_sp0(struct tss_struct *tss, | |