Commit 262d5ee2 authored by Ingo Molnar's avatar Ingo Molnar

x86: VMI fix

Jeff Chua bisected down a vmware guest boot breakage (hang) to
this paravirt change:

  commit 8d947344
  Author: Glauber de Oliveira Costa <gcosta@redhat.com>
  Date:   Wed Jan 30 13:31:12 2008 +0100

    x86: change write_idt_entry signature

fix the off-by-one indexing bug ...
Bisected-by: default avatarJeff Chua <jeff.chua.linux@gmail.com>
Tested-by: default avatarJeff Chua <jeff.chua.linux@gmail.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 38cb47ba
...@@ -220,21 +220,21 @@ static void vmi_set_tr(void) ...@@ -220,21 +220,21 @@ static void vmi_set_tr(void)
static void vmi_write_idt_entry(gate_desc *dt, int entry, const gate_desc *g) static void vmi_write_idt_entry(gate_desc *dt, int entry, const gate_desc *g)
{ {
u32 *idt_entry = (u32 *)g; u32 *idt_entry = (u32 *)g;
vmi_ops.write_idt_entry(dt, entry, idt_entry[0], idt_entry[2]); vmi_ops.write_idt_entry(dt, entry, idt_entry[0], idt_entry[1]);
} }
static void vmi_write_gdt_entry(struct desc_struct *dt, int entry, static void vmi_write_gdt_entry(struct desc_struct *dt, int entry,
const void *desc, int type) const void *desc, int type)
{ {
u32 *gdt_entry = (u32 *)desc; u32 *gdt_entry = (u32 *)desc;
vmi_ops.write_gdt_entry(dt, entry, gdt_entry[0], gdt_entry[2]); vmi_ops.write_gdt_entry(dt, entry, gdt_entry[0], gdt_entry[1]);
} }
static void vmi_write_ldt_entry(struct desc_struct *dt, int entry, static void vmi_write_ldt_entry(struct desc_struct *dt, int entry,
const void *desc) const void *desc)
{ {
u32 *ldt_entry = (u32 *)desc; u32 *ldt_entry = (u32 *)desc;
vmi_ops.write_idt_entry(dt, entry, ldt_entry[0], ldt_entry[2]); vmi_ops.write_idt_entry(dt, entry, ldt_entry[0], ldt_entry[1]);
} }
static void vmi_load_sp0(struct tss_struct *tss, static void vmi_load_sp0(struct tss_struct *tss,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment