[PATCH -next] KVM: PPC: Fix error return code in kvm_vm_ioctl_create_spapr_tce()

Paul Mackerras paulus at ozlabs.org
Wed Feb 8 20:48:06 AEDT 2017


On Tue, Feb 07, 2017 at 03:34:07PM +0000, Wei Yongjun wrote:
> From: Wei Yongjun <weiyongjun1 at huawei.com>
> 
> Fix to return error code -ENOMEM from the memory alloc error handling
> case instead of 0, as done elsewhere in this function.
> 
> Signed-off-by: Wei Yongjun <weiyongjun1 at huawei.com>
> ---
>  arch/powerpc/kvm/book3s_64_vio.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/kvm/book3s_64_vio.c b/arch/powerpc/kvm/book3s_64_vio.c
> index d71f872..8a4a3f0 100644
> --- a/arch/powerpc/kvm/book3s_64_vio.c
> +++ b/arch/powerpc/kvm/book3s_64_vio.c
> @@ -173,8 +173,10 @@ long kvm_vm_ioctl_create_spapr_tce(struct kvm *kvm,
>  
>  	stt = kzalloc(sizeof(*stt) + npages * sizeof(struct page *),
>  		      GFP_KERNEL);
> -	if (!stt)
> +	if (!stt) {
> +		ret = -ENOMEM;
>  		goto fail;

I think it would be better to set ret unconditionally to -ENOMEM
before the if; that would save you one line here and make the second
hunk unnecessary.

> +	}
>  
>  	stt->liobn = args->liobn;
>  	stt->page_shift = args->page_shift;
> @@ -184,8 +186,10 @@ long kvm_vm_ioctl_create_spapr_tce(struct kvm *kvm,
>  
>  	for (i = 0; i < npages; i++) {
>  		stt->pages[i] = alloc_page(GFP_KERNEL | __GFP_ZERO);
> -		if (!stt->pages[i])
> +		if (!stt->pages[i]) {
> +			ret = -ENOMEM;
>  			goto fail;
> +		}
>  	}
>  
>  	kvm_get_kvm(kvm);

Paul.


More information about the Linuxppc-dev mailing list