diff options
Diffstat (limited to 'arch/x86/kvm/svm.c')
| -rw-r--r-- | arch/x86/kvm/svm.c | 26 | 
1 files changed, 13 insertions, 13 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index 6276140044d0..d96092b35936 100644 --- a/arch/x86/kvm/svm.c +++ b/arch/x86/kvm/svm.c @@ -776,7 +776,7 @@ static void skip_emulated_instruction(struct kvm_vcpu *vcpu)  	}  	if (!svm->next_rip) { -		if (emulate_instruction(vcpu, EMULTYPE_SKIP) != +		if (kvm_emulate_instruction(vcpu, EMULTYPE_SKIP) !=  				EMULATE_DONE)  			printk(KERN_DEBUG "%s: NOP\n", __func__);  		return; @@ -1226,8 +1226,7 @@ static __init int sev_hardware_setup(void)  	min_sev_asid = cpuid_edx(0x8000001F);  	/* Initialize SEV ASID bitmap */ -	sev_asid_bitmap = kcalloc(BITS_TO_LONGS(max_sev_asid), -				sizeof(unsigned long), GFP_KERNEL); +	sev_asid_bitmap = bitmap_zalloc(max_sev_asid, GFP_KERNEL);  	if (!sev_asid_bitmap)  		return 1; @@ -1405,7 +1404,7 @@ static __exit void svm_hardware_unsetup(void)  	int cpu;  	if (svm_sev_enabled()) -		kfree(sev_asid_bitmap); +		bitmap_free(sev_asid_bitmap);  	for_each_possible_cpu(cpu)  		svm_cpu_uninit(cpu); @@ -2715,7 +2714,7 @@ static int gp_interception(struct vcpu_svm *svm)  	WARN_ON_ONCE(!enable_vmware_backdoor); -	er = emulate_instruction(vcpu, +	er = kvm_emulate_instruction(vcpu,  		EMULTYPE_VMWARE | EMULTYPE_NO_UD_ON_FAIL);  	if (er == EMULATE_USER_EXIT)  		return 0; @@ -2819,7 +2818,7 @@ static int io_interception(struct vcpu_svm *svm)  	string = (io_info & SVM_IOIO_STR_MASK) != 0;  	in = (io_info & SVM_IOIO_TYPE_MASK) != 0;  	if (string) -		return emulate_instruction(vcpu, 0) == EMULATE_DONE; +		return kvm_emulate_instruction(vcpu, 0) == EMULATE_DONE;  	port = io_info >> 16;  	size = (io_info & SVM_IOIO_SIZE_MASK) >> SVM_IOIO_SIZE_SHIFT; @@ -3861,7 +3860,7 @@ static int iret_interception(struct vcpu_svm *svm)  static int invlpg_interception(struct vcpu_svm *svm)  {  	if (!static_cpu_has(X86_FEATURE_DECODEASSISTS)) -		return emulate_instruction(&svm->vcpu, 0) == EMULATE_DONE; +		return kvm_emulate_instruction(&svm->vcpu, 0) == EMULATE_DONE;  	kvm_mmu_invlpg(&svm->vcpu, svm->vmcb->control.exit_info_1);  	return kvm_skip_emulated_instruction(&svm->vcpu); @@ -3869,13 +3868,13 @@ static int invlpg_interception(struct vcpu_svm *svm)  static int emulate_on_interception(struct vcpu_svm *svm)  { -	return emulate_instruction(&svm->vcpu, 0) == EMULATE_DONE; +	return kvm_emulate_instruction(&svm->vcpu, 0) == EMULATE_DONE;  }  static int rsm_interception(struct vcpu_svm *svm)  { -	return x86_emulate_instruction(&svm->vcpu, 0, 0, -				       rsm_ins_bytes, 2) == EMULATE_DONE; +	return kvm_emulate_instruction_from_buffer(&svm->vcpu, +					rsm_ins_bytes, 2) == EMULATE_DONE;  }  static int rdpmc_interception(struct vcpu_svm *svm) @@ -4700,7 +4699,7 @@ static int avic_unaccelerated_access_interception(struct vcpu_svm *svm)  		ret = avic_unaccel_trap_write(svm);  	} else {  		/* Handling Fault */ -		ret = (emulate_instruction(&svm->vcpu, 0) == EMULATE_DONE); +		ret = (kvm_emulate_instruction(&svm->vcpu, 0) == EMULATE_DONE);  	}  	return ret; @@ -6747,7 +6746,7 @@ e_free:  static int sev_dbg_crypt(struct kvm *kvm, struct kvm_sev_cmd *argp, bool dec)  {  	unsigned long vaddr, vaddr_end, next_vaddr; -	unsigned long dst_vaddr, dst_vaddr_end; +	unsigned long dst_vaddr;  	struct page **src_p, **dst_p;  	struct kvm_sev_dbg debug;  	unsigned long n; @@ -6763,7 +6762,6 @@ static int sev_dbg_crypt(struct kvm *kvm, struct kvm_sev_cmd *argp, bool dec)  	size = debug.len;  	vaddr_end = vaddr + size;  	dst_vaddr = debug.dst_uaddr; -	dst_vaddr_end = dst_vaddr + size;  	for (; vaddr < vaddr_end; vaddr = next_vaddr) {  		int len, s_off, d_off; @@ -7150,6 +7148,8 @@ static struct kvm_x86_ops svm_x86_ops __ro_after_init = {  	.check_intercept = svm_check_intercept,  	.handle_external_intr = svm_handle_external_intr, +	.request_immediate_exit = __kvm_request_immediate_exit, +  	.sched_in = svm_sched_in,  	.pmu_ops = &amd_pmu_ops,  |