arm/arm64: KVM: Fix BE accesses to GICv2 EISR and ELRSR regs
[firefly-linux-kernel-4.4.55.git] / virt / kvm / kvm_main.c
index 68d96f5dbfe23ce56caec67803dd02341f7e7086..278232025129cae0686b5fa628c07f27169e7d2d 100644 (file)
@@ -1089,9 +1089,9 @@ EXPORT_SYMBOL_GPL(gfn_to_hva);
  * If writable is set to false, the hva returned by this function is only
  * allowed to be read.
  */
-unsigned long gfn_to_hva_prot(struct kvm *kvm, gfn_t gfn, bool *writable)
+unsigned long gfn_to_hva_memslot_prot(struct kvm_memory_slot *slot,
+                                     gfn_t gfn, bool *writable)
 {
-       struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn);
        unsigned long hva = __gfn_to_hva_many(slot, gfn, NULL, false);
 
        if (!kvm_is_error_hva(hva) && writable)
@@ -1100,6 +1100,13 @@ unsigned long gfn_to_hva_prot(struct kvm *kvm, gfn_t gfn, bool *writable)
        return hva;
 }
 
+unsigned long gfn_to_hva_prot(struct kvm *kvm, gfn_t gfn, bool *writable)
+{
+       struct kvm_memory_slot *slot = gfn_to_memslot(kvm, gfn);
+
+       return gfn_to_hva_memslot_prot(slot, gfn, writable);
+}
+
 static int kvm_read_hva(void *data, void __user *hva, int len)
 {
        return __copy_from_user(data, hva, len);
@@ -2281,14 +2288,6 @@ static struct kvm_device_ops *kvm_device_ops_table[KVM_DEV_TYPE_MAX] = {
 #ifdef CONFIG_KVM_XICS
        [KVM_DEV_TYPE_XICS]             = &kvm_xics_ops,
 #endif
-
-#ifdef CONFIG_KVM_VFIO
-       [KVM_DEV_TYPE_VFIO]             = &kvm_vfio_ops,
-#endif
-
-#ifdef CONFIG_S390
-       [KVM_DEV_TYPE_FLIC]             = &kvm_flic_ops,
-#endif
 };
 
 int kvm_register_device_ops(struct kvm_device_ops *ops, u32 type)