diff options
| -rw-r--r-- | arch/x86/kvm/svm/sev.c | 9 | 
1 files changed, 5 insertions, 4 deletions
| diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index 3dc3e2897804..02d60d7f903d 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -1271,8 +1271,8 @@ static int sev_send_update_data(struct kvm *kvm, struct kvm_sev_cmd *argp)  	/* Pin guest memory */  	guest_page = sev_pin_memory(kvm, params.guest_uaddr & PAGE_MASK,  				    PAGE_SIZE, &n, 0); -	if (!guest_page) -		return -EFAULT; +	if (IS_ERR(guest_page)) +		return PTR_ERR(guest_page);  	/* allocate memory for header and transport buffer */  	ret = -ENOMEM; @@ -1463,11 +1463,12 @@ static int sev_receive_update_data(struct kvm *kvm, struct kvm_sev_cmd *argp)  	data.trans_len = params.trans_len;  	/* Pin guest memory */ -	ret = -EFAULT;  	guest_page = sev_pin_memory(kvm, params.guest_uaddr & PAGE_MASK,  				    PAGE_SIZE, &n, 0); -	if (!guest_page) +	if (IS_ERR(guest_page)) { +		ret = PTR_ERR(guest_page);  		goto e_free_trans; +	}  	/* The RECEIVE_UPDATE_DATA command requires C-bit to be always set. */  	data.guest_address = (page_to_pfn(guest_page[0]) << PAGE_SHIFT) + offset; | 
