x86, vmi: fix broken LDT access
authorZachary Amsden <zach@vmware.com>
Tue, 30 Sep 2008 18:02:12 +0000 (11:02 -0700)
committerIngo Molnar <mingo@elte.hu>
Tue, 30 Sep 2008 19:13:18 +0000 (21:13 +0200)
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

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>
Cc: Glauber de Oliveira Costa <gcosta@redhat.com>
Cc: stable@kernel.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/vmi_32.c

index 6ca515d6db543b9a7739b9f2f9ab39d181ed3f9b..edfb09f304795efea2858120d71533d1f20d5338 100644 (file)
@@ -235,7 +235,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,