From patchwork Fri Jan 20 18:21:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: SF Markus Elfring X-Patchwork-Id: 717869 X-Patchwork-Delegate: paulus@samba.org Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3v4pyF6qTKz9s2G for ; Sat, 21 Jan 2017 05:24:21 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3v4pyF63jfzDqgp for ; Sat, 21 Jan 2017 05:24:21 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from mout.web.de (mout.web.de [212.227.15.4]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3v4pvy2tLjzDqZX for ; Sat, 21 Jan 2017 05:22:22 +1100 (AEDT) Received: from [192.168.1.2] ([77.182.231.71]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0M7Kis-1cI2g62RpW-00wzeG; Fri, 20 Jan 2017 19:21:49 +0100 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: 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: 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 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kernel-janitors@vger.kernel.org, LKML Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" 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 |