Skip to content

Commit 1b40a89

Browse files
committed
Merge branch 'kvm-updates-2.6.26' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm
* 'kvm-updates-2.6.26' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: KVM: IOAPIC: Fix level-triggered irq injection hang x86: KVM guest: Add memory clobber to hypercalls
2 parents 97f8571 + 35baff2 commit 1b40a89

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

include/asm-x86/kvm_para.h

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ static inline long kvm_hypercall0(unsigned int nr)
7171
long ret;
7272
asm volatile(KVM_HYPERCALL
7373
: "=a"(ret)
74-
: "a"(nr));
74+
: "a"(nr)
75+
: "memory");
7576
return ret;
7677
}
7778

@@ -80,7 +81,8 @@ static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
8081
long ret;
8182
asm volatile(KVM_HYPERCALL
8283
: "=a"(ret)
83-
: "a"(nr), "b"(p1));
84+
: "a"(nr), "b"(p1)
85+
: "memory");
8486
return ret;
8587
}
8688

@@ -90,7 +92,8 @@ static inline long kvm_hypercall2(unsigned int nr, unsigned long p1,
9092
long ret;
9193
asm volatile(KVM_HYPERCALL
9294
: "=a"(ret)
93-
: "a"(nr), "b"(p1), "c"(p2));
95+
: "a"(nr), "b"(p1), "c"(p2)
96+
: "memory");
9497
return ret;
9598
}
9699

@@ -100,7 +103,8 @@ static inline long kvm_hypercall3(unsigned int nr, unsigned long p1,
100103
long ret;
101104
asm volatile(KVM_HYPERCALL
102105
: "=a"(ret)
103-
: "a"(nr), "b"(p1), "c"(p2), "d"(p3));
106+
: "a"(nr), "b"(p1), "c"(p2), "d"(p3)
107+
: "memory");
104108
return ret;
105109
}
106110

@@ -111,7 +115,8 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
111115
long ret;
112116
asm volatile(KVM_HYPERCALL
113117
: "=a"(ret)
114-
: "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4));
118+
: "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4)
119+
: "memory");
115120
return ret;
116121
}
117122

virt/kvm/ioapic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ static void __kvm_ioapic_update_eoi(struct kvm_ioapic *ioapic, int gsi)
278278

279279
ent->fields.remote_irr = 0;
280280
if (!ent->fields.mask && (ioapic->irr & (1 << gsi)))
281-
ioapic_deliver(ioapic, gsi);
281+
ioapic_service(ioapic, gsi);
282282
}
283283

284284
void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)

0 commit comments

Comments
 (0)