mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
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
This commit is contained in:
commit
1b40a895df
2 changed files with 11 additions and 6 deletions
|
@ -71,7 +71,8 @@ static inline long kvm_hypercall0(unsigned int nr)
|
||||||
long ret;
|
long ret;
|
||||||
asm volatile(KVM_HYPERCALL
|
asm volatile(KVM_HYPERCALL
|
||||||
: "=a"(ret)
|
: "=a"(ret)
|
||||||
: "a"(nr));
|
: "a"(nr)
|
||||||
|
: "memory");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +81,8 @@ static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
|
||||||
long ret;
|
long ret;
|
||||||
asm volatile(KVM_HYPERCALL
|
asm volatile(KVM_HYPERCALL
|
||||||
: "=a"(ret)
|
: "=a"(ret)
|
||||||
: "a"(nr), "b"(p1));
|
: "a"(nr), "b"(p1)
|
||||||
|
: "memory");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,7 +92,8 @@ static inline long kvm_hypercall2(unsigned int nr, unsigned long p1,
|
||||||
long ret;
|
long ret;
|
||||||
asm volatile(KVM_HYPERCALL
|
asm volatile(KVM_HYPERCALL
|
||||||
: "=a"(ret)
|
: "=a"(ret)
|
||||||
: "a"(nr), "b"(p1), "c"(p2));
|
: "a"(nr), "b"(p1), "c"(p2)
|
||||||
|
: "memory");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,7 +103,8 @@ static inline long kvm_hypercall3(unsigned int nr, unsigned long p1,
|
||||||
long ret;
|
long ret;
|
||||||
asm volatile(KVM_HYPERCALL
|
asm volatile(KVM_HYPERCALL
|
||||||
: "=a"(ret)
|
: "=a"(ret)
|
||||||
: "a"(nr), "b"(p1), "c"(p2), "d"(p3));
|
: "a"(nr), "b"(p1), "c"(p2), "d"(p3)
|
||||||
|
: "memory");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -111,7 +115,8 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
|
||||||
long ret;
|
long ret;
|
||||||
asm volatile(KVM_HYPERCALL
|
asm volatile(KVM_HYPERCALL
|
||||||
: "=a"(ret)
|
: "=a"(ret)
|
||||||
: "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4));
|
: "a"(nr), "b"(p1), "c"(p2), "d"(p3), "S"(p4)
|
||||||
|
: "memory");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -278,7 +278,7 @@ static void __kvm_ioapic_update_eoi(struct kvm_ioapic *ioapic, int gsi)
|
||||||
|
|
||||||
ent->fields.remote_irr = 0;
|
ent->fields.remote_irr = 0;
|
||||||
if (!ent->fields.mask && (ioapic->irr & (1 << gsi)))
|
if (!ent->fields.mask && (ioapic->irr & (1 << gsi)))
|
||||||
ioapic_deliver(ioapic, gsi);
|
ioapic_service(ioapic, gsi);
|
||||||
}
|
}
|
||||||
|
|
||||||
void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)
|
void kvm_ioapic_update_eoi(struct kvm *kvm, int vector)
|
||||||
|
|
Loading…
Reference in a new issue