diff mbox

[kvm-unit-tests] x86: isr: fix handle_external_interrupt for 32-bit build

Message ID 1408268073-24180-1-git-send-email-pbonzini@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Paolo Bonzini Aug. 17, 2014, 9:34 a.m. UTC
Broken by commit 57b4317dc6758dd8b478609b1312685795654e01.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 lib/x86/isr.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
diff mbox

Patch

diff --git a/lib/x86/isr.c b/lib/x86/isr.c
index b0c6f53..833564a 100644
--- a/lib/x86/isr.c
+++ b/lib/x86/isr.c
@@ -93,13 +93,13 @@  void handle_irq(unsigned vec, void (*func)(isr_regs_t *regs))
 
 void handle_external_interrupt(int vector)
 {
+	idt_entry_t *idt = &boot_idt[vector];
+	unsigned long entry =
+		idt->offset0 | ((unsigned long)idt->offset1 << 16);
 #ifdef __x86_64__
 	unsigned long tmp;
+	entry |= ((unsigned long)idt->offset2 << 32);
 #endif
-	idt_entry_t *idt = &boot_idt[vector];
-	unsigned long entry =
-	    idt->offset0 | ((unsigned long)idt->offset1 << 16) |
-	    ((unsigned long)idt->offset2 << 32);
 
 	asm volatile(
 #ifdef __x86_64__
@@ -109,7 +109,7 @@  void handle_external_interrupt(int vector)
 		     "push %[sp]\n\t"
 #endif
 		     "pushf\n\t"
-		     "orl $0x200, (%%rsp)\n\t"
+		     "orl $0x200, (%%"R"sp)\n\t"
 		     "push $%c[cs]\n\t"
 		     "call *%[entry]\n\t"
 		     :