]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blobdiff - arch/mips/include/asm/kvm_host.h
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[mirror_ubuntu-hirsute-kernel.git] / arch / mips / include / asm / kvm_host.h
index 2c1c53d12179302140d3576dddd11a732a5b13d9..d2abd98471e860ca2e42cf2576c5902cc82e1360 100644 (file)
@@ -411,11 +411,12 @@ static inline void _kvm_atomic_set_c0_guest_reg(unsigned long *reg,
        unsigned long temp;
        do {
                __asm__ __volatile__(
+               "       .set    push                            \n"
                "       .set    "MIPS_ISA_ARCH_LEVEL"           \n"
                "       " __LL "%0, %1                          \n"
                "       or      %0, %2                          \n"
                "       " __SC  "%0, %1                         \n"
-               "       .set    mips0                           \n"
+               "       .set    pop                             \n"
                : "=&r" (temp), "+m" (*reg)
                : "r" (val));
        } while (unlikely(!temp));
@@ -427,11 +428,12 @@ static inline void _kvm_atomic_clear_c0_guest_reg(unsigned long *reg,
        unsigned long temp;
        do {
                __asm__ __volatile__(
+               "       .set    push                            \n"
                "       .set    "MIPS_ISA_ARCH_LEVEL"           \n"
                "       " __LL "%0, %1                          \n"
                "       and     %0, %2                          \n"
                "       " __SC  "%0, %1                         \n"
-               "       .set    mips0                           \n"
+               "       .set    pop                             \n"
                : "=&r" (temp), "+m" (*reg)
                : "r" (~val));
        } while (unlikely(!temp));
@@ -444,12 +446,13 @@ static inline void _kvm_atomic_change_c0_guest_reg(unsigned long *reg,
        unsigned long temp;
        do {
                __asm__ __volatile__(
+               "       .set    push                            \n"
                "       .set    "MIPS_ISA_ARCH_LEVEL"           \n"
                "       " __LL "%0, %1                          \n"
                "       and     %0, %2                          \n"
                "       or      %0, %3                          \n"
                "       " __SC  "%0, %1                         \n"
-               "       .set    mips0                           \n"
+               "       .set    pop                             \n"
                : "=&r" (temp), "+m" (*reg)
                : "r" (~change), "r" (val & change));
        } while (unlikely(!temp));
@@ -933,7 +936,7 @@ enum kvm_mips_fault_result kvm_trap_emul_gva_fault(struct kvm_vcpu *vcpu,
 #define KVM_ARCH_WANT_MMU_NOTIFIER
 int kvm_unmap_hva_range(struct kvm *kvm,
                        unsigned long start, unsigned long end);
-void kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
+int kvm_set_spte_hva(struct kvm *kvm, unsigned long hva, pte_t pte);
 int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end);
 int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);