diff options
Diffstat (limited to 'arch/x86/xen/enlighten.c')
-rw-r--r-- | arch/x86/xen/enlighten.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c index c32e0fd0f838..b7b7346d8cdc 100644 --- a/arch/x86/xen/enlighten.c +++ b/arch/x86/xen/enlighten.c | |||
@@ -399,8 +399,7 @@ static DEFINE_PER_CPU(struct desc_ptr, idt_desc); | |||
399 | 399 | ||
400 | /* Set an IDT entry. If the entry is part of the current IDT, then | 400 | /* Set an IDT entry. If the entry is part of the current IDT, then |
401 | also update Xen. */ | 401 | also update Xen. */ |
402 | static void xen_write_idt_entry(struct desc_struct *dt, int entrynum, | 402 | static void xen_write_idt_entry(gate_desc *dt, int entrynum, const gate_desc *g) |
403 | u32 low, u32 high) | ||
404 | { | 403 | { |
405 | unsigned long p = (unsigned long)&dt[entrynum]; | 404 | unsigned long p = (unsigned long)&dt[entrynum]; |
406 | unsigned long start, end; | 405 | unsigned long start, end; |
@@ -412,14 +411,15 @@ static void xen_write_idt_entry(struct desc_struct *dt, int entrynum, | |||
412 | 411 | ||
413 | xen_mc_flush(); | 412 | xen_mc_flush(); |
414 | 413 | ||
415 | write_dt_entry(dt, entrynum, low, high); | 414 | native_write_idt_entry(dt, entrynum, g); |
416 | 415 | ||
417 | if (p >= start && (p + 8) <= end) { | 416 | if (p >= start && (p + 8) <= end) { |
418 | struct trap_info info[2]; | 417 | struct trap_info info[2]; |
418 | u32 *desc = (u32 *)g; | ||
419 | 419 | ||
420 | info[1].address = 0; | 420 | info[1].address = 0; |
421 | 421 | ||
422 | if (cvt_gate_to_trap(entrynum, low, high, &info[0])) | 422 | if (cvt_gate_to_trap(entrynum, desc[0], desc[1], &info[0])) |
423 | if (HYPERVISOR_set_trap_table(info)) | 423 | if (HYPERVISOR_set_trap_table(info)) |
424 | BUG(); | 424 | BUG(); |
425 | } | 425 | } |