mirror of
https://github.com/hardkernel/linux.git
synced 2026-03-25 20:10:23 +09:00
Revert "ANDROID: BACKPORT: KVM: arm64: Add initial support for KVM_CAP_EXIT_HYPERCALL"
This reverts commit e853c3b172.
This capability is unused, so remove it to avoid UAPI divergence from
upstream.
Bug: 226564150
[willdeacon@: Also removed additional instance in arch/arm64/kvm/arm.c]
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: Ib3e929a5fc81dc5c9c1ff8512d48f63bdda5c404
This commit is contained in:
@@ -212,8 +212,6 @@ struct kvm_arch {
|
||||
u8 pfr0_csv3;
|
||||
|
||||
struct kvm_protected_vm pkvm;
|
||||
|
||||
u64 hypercall_exit_enabled;
|
||||
};
|
||||
|
||||
struct kvm_protected_vcpu {
|
||||
|
||||
@@ -63,9 +63,6 @@ static bool vgic_present;
|
||||
static DEFINE_PER_CPU(unsigned char, kvm_arm_hardware_enabled);
|
||||
DEFINE_STATIC_KEY_FALSE(userspace_irqchip_in_use);
|
||||
|
||||
/* KVM "vendor" hypercalls which may be forwarded to userspace on request. */
|
||||
#define KVM_EXIT_HYPERCALL_VALID_MASK (0)
|
||||
|
||||
int kvm_arch_vcpu_should_kick(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
return kvm_vcpu_exiting_guest_mode(vcpu) == IN_GUEST_MODE;
|
||||
@@ -116,16 +113,6 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm,
|
||||
}
|
||||
mutex_unlock(&kvm->lock);
|
||||
break;
|
||||
case KVM_CAP_EXIT_HYPERCALL:
|
||||
if (cap->args[0] & ~KVM_EXIT_HYPERCALL_VALID_MASK)
|
||||
return -EINVAL;
|
||||
|
||||
if (cap->args[1] || cap->args[2] || cap->args[3])
|
||||
return -EINVAL;
|
||||
|
||||
WRITE_ONCE(kvm->arch.hypercall_exit_enabled, cap->args[0]);
|
||||
r = 0;
|
||||
break;
|
||||
default:
|
||||
r = -EINVAL;
|
||||
break;
|
||||
@@ -313,9 +300,6 @@ static int kvm_check_extension(struct kvm *kvm, long ext)
|
||||
case KVM_CAP_ARM_PTRAUTH_GENERIC:
|
||||
r = system_has_full_ptr_auth();
|
||||
break;
|
||||
case KVM_CAP_EXIT_HYPERCALL:
|
||||
r = KVM_EXIT_HYPERCALL_VALID_MASK;
|
||||
break;
|
||||
default:
|
||||
r = 0;
|
||||
}
|
||||
@@ -340,7 +324,6 @@ static int pkvm_check_extension(struct kvm *kvm, long ext, int kvm_cap)
|
||||
case KVM_CAP_MAX_VCPU_ID:
|
||||
case KVM_CAP_MSI_DEVID:
|
||||
case KVM_CAP_ARM_VM_IPA_SIZE:
|
||||
case KVM_CAP_EXIT_HYPERCALL:
|
||||
r = kvm_cap;
|
||||
break;
|
||||
case KVM_CAP_GUEST_DEBUG_HW_BPS:
|
||||
@@ -891,12 +874,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
|
||||
ret = kvm_handle_mmio_return(vcpu);
|
||||
if (ret)
|
||||
return ret;
|
||||
} else if (run->exit_reason == KVM_EXIT_HYPERCALL) {
|
||||
smccc_set_retval(vcpu,
|
||||
vcpu->run->hypercall.ret,
|
||||
vcpu->run->hypercall.args[0],
|
||||
vcpu->run->hypercall.args[1],
|
||||
vcpu->run->hypercall.args[2]);
|
||||
}
|
||||
|
||||
vcpu_load(vcpu);
|
||||
|
||||
@@ -58,24 +58,6 @@ static void kvm_ptp_get_time(struct kvm_vcpu *vcpu, u64 *val)
|
||||
val[3] = lower_32_bits(cycles);
|
||||
}
|
||||
|
||||
static int kvm_vcpu_exit_hcall(struct kvm_vcpu *vcpu, u32 nr, u32 nr_args)
|
||||
{
|
||||
u64 mask = vcpu->kvm->arch.hypercall_exit_enabled;
|
||||
u32 i;
|
||||
|
||||
if (nr_args > 6 || !(mask & BIT(nr)))
|
||||
return -EINVAL;
|
||||
|
||||
vcpu->run->exit_reason = KVM_EXIT_HYPERCALL;
|
||||
vcpu->run->hypercall.nr = nr;
|
||||
|
||||
for (i = 0; i < nr_args; ++i)
|
||||
vcpu->run->hypercall.args[i] = vcpu_get_reg(vcpu, i + 1);
|
||||
|
||||
vcpu->run->hypercall.longmode = !vcpu_mode_is_32bit(vcpu);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int kvm_hvc_call_handler(struct kvm_vcpu *vcpu)
|
||||
{
|
||||
u32 func_id = smccc_get_function(vcpu);
|
||||
|
||||
@@ -1072,9 +1072,7 @@ struct kvm_ppc_resize_hpt {
|
||||
/*
|
||||
#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
|
||||
#define KVM_CAP_SREGS2 200
|
||||
*/
|
||||
#define KVM_CAP_EXIT_HYPERCALL 201
|
||||
/*
|
||||
#define KVM_CAP_PPC_RPT_INVALIDATE 202
|
||||
#define KVM_CAP_BINARY_STATS_FD 203
|
||||
#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
|
||||
|
||||
Reference in New Issue
Block a user