From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753188AbdATSWQ (ORCPT ); Fri, 20 Jan 2017 13:22:16 -0500 Received: from mout.web.de ([212.227.15.4]:51022 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752781AbdATSWN (ORCPT ); Fri, 20 Jan 2017 13:22:13 -0500 Subject: [PATCH 03/11] KVM: PPC: Book3S HV: Move error code assignments in two functions To: kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Alexander Graf , Benjamin Herrenschmidt , Michael Ellerman , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= References: Cc: LKML , kernel-janitors@vger.kernel.org From: SF Markus Elfring Message-ID: Date: Fri, 20 Jan 2017 19:21:44 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:uCHlOSRQdsaNunkcM5pSnNzO/ipPShogUwWBAj5VrPJYrJFfkz1 judRBme9EuplgTD0Okug0Jx9kB46RZSP4FuOhfwa9NefDL0J/g3EDc5Y79FeWeXWvKYuIXL 44wxTY7aAp9mj19OfEI9N5o1eBJZR5oda4y2BmwAwLR8ZfJNoRUTfrCJgrZKwqXAFNNDKcu MTiDumcMSvqnCyBax6/Gw== X-UI-Out-Filterresults: notjunk:1;V01:K0:AimiRGoKBoc=:e4PLMtx/IhoOHmDXyu6x+p ZUU2Sz1R58mBfetvl+Bz/KIU2u0Lg5EfcQI3MutOqe2+wx6/Rt+zC0S+czHhfPUtMDVwQhlj4 wDkM42m3ZpIj39P5QYOB3n0rpOicTPBdovRXIGtDVyxoAAWM6MsDj+26HsXDEo81uDb60GyNq 1mTGTTDfOIE4XgkCGGWJPI9tv4KqcvaRcdAVRQ8fM2wQk3fRg6BWLR88a7REv6XsWelPVGWnj T4IofpSyEfK8OmYiAxWGQ/s3iKfQ/Uyyc/lgKFUbQ1+JKt7nNJP5GYhaLG8YQZUochy4WynKo V1WamyR1mWiuzDYZXZXgwvfJEjegf/LT4e4MzFXLy6PwcEYjX5Vy+WOd5T14SQamNubWgX+ls GAKCfrHsmuhPB/4ToGcbWUDJMfpX+1AX6SYfJ3BDiyrMO+RsiL3KjXZ1ez9kIgbdtk2qNIlXo 1lRICAO/HJW6C3yjf8JJKNmjnT/AKjrbGzKetQZNXbopWiW6ZjWCeqUgBdg9b3yKtlRQT6Q0u m6ZkpFa/u1W+WyS08eahj+XRsJkBnzItGZw9QLrof/NuvKDrXdufxSnbqZuY8uGGVB4xz8ULK UYe9pO2jdZf/ycrO0yvjdKNf/2qSNzlUmwonV9xTERZiw9gGeO8bMsKUyi/7hDFqlvJ59nsLP Y4LliMCQ6pJtbFZ30S56ypkGa4QAYQRXq2bYwsZjn4EXQunvqW7Sy4iFuPrSpdLVU32+AmpwK eAUtjrFg59mO9Be1SVucMeSb5/WJXPjH8xcyq87tH281DhoZ8TpbpueQd9Sj7kY6Q4wC2mxiJ XJ/Ulex Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Markus Elfring Date: Fri, 20 Jan 2017 10:30:26 +0100 A local variable was set to an error code in a few cases before a concrete error situation was detected. Thus move the corresponding assignments into if branches to indicate a software failure there. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- arch/powerpc/kvm/book3s_hv.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 8dcbe37a4dac..a93e1c4445da 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -2967,15 +2967,17 @@ static int kvm_vm_ioctl_get_dirty_log_hv(struct kvm *kvm, mutex_lock(&kvm->slots_lock); - r = -EINVAL; - if (log->slot >= KVM_USER_MEM_SLOTS) + if (log->slot >= KVM_USER_MEM_SLOTS) { + r = -EINVAL; goto out; + } slots = kvm_memslots(kvm); memslot = id_to_memslot(slots, log->slot); - r = -ENOENT; - if (!memslot->dirty_bitmap) + if (!memslot->dirty_bitmap) { + r = -ENOENT; goto out; + } n = kvm_dirty_bitmap_bytes(memslot); memset(memslot->dirty_bitmap, 0, n); @@ -2984,9 +2986,10 @@ static int kvm_vm_ioctl_get_dirty_log_hv(struct kvm *kvm, if (r) goto out; - r = -EFAULT; - if (copy_to_user(log->dirty_bitmap, memslot->dirty_bitmap, n)) + if (copy_to_user(log->dirty_bitmap, memslot->dirty_bitmap, n)) { + r = -EFAULT; goto out; + } r = 0; out: @@ -3127,9 +3130,10 @@ static int kvmppc_hv_setup_htab_rma(struct kvm_vcpu *vcpu) memslot = gfn_to_memslot(kvm, 0); /* We must have some memory at 0 by now */ - err = -EINVAL; - if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) + if (!memslot || (memslot->flags & KVM_MEMSLOT_INVALID)) { + err = -EINVAL; goto out_srcu; + } /* Look up the VMA for the start of this memory slot */ hva = memslot->userspace_addr; @@ -3144,10 +3148,11 @@ static int kvmppc_hv_setup_htab_rma(struct kvm_vcpu *vcpu) up_read(¤t->mm->mmap_sem); /* We can handle 4k, 64k or 16M pages in the VRMA */ - err = -EINVAL; if (!(psize == 0x1000 || psize == 0x10000 || - psize == 0x1000000)) + psize == 0x1000000)) { + err = -EINVAL; goto out_srcu; + } senc = slb_pgsize_encoding(psize); kvm->arch.vrma_slb_v = senc | SLB_VSID_B_1T | -- 2.11.0