Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1563847
| From | SF Markus Elfring <elfring@users.sourceforge.net> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 01/11] KVM: PPC: Book3S HV: Move assignments for the variable "err" in kvm_htab_write() |
| Date | 2017-01-20 19:30 +0100 |
| Message-ID | <t1M6K-2gO-15@gated-at.bofh.it> (permalink) |
| References | <t1LX4-2d6-19@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Thu, 19 Jan 2017 22:45:56 +0100
* A local variable was set to an error code in five 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.
* Delete two zero assignments which became unnecessary with
this refactoring.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
arch/powerpc/kvm/book3s_64_mmu_hv.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index b795dd1ac2ef..dc34729e4ad0 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -1399,22 +1399,23 @@ static ssize_t kvm_htab_write(struct file *file, const char __user *buf,
err = 0;
for (nb = 0; nb + sizeof(hdr) <= count; ) {
- err = -EFAULT;
- if (__copy_from_user(&hdr, buf, sizeof(hdr)))
+ if (__copy_from_user(&hdr, buf, sizeof(hdr))) {
+ err = -EFAULT;
break;
+ }
- err = 0;
if (nb + hdr.n_valid * HPTE_SIZE > count)
break;
nb += sizeof(hdr);
buf += sizeof(hdr);
- err = -EINVAL;
i = hdr.index;
if (i >= kvm->arch.hpt_npte ||
- i + hdr.n_valid + hdr.n_invalid > kvm->arch.hpt_npte)
+ i + hdr.n_valid + hdr.n_invalid > kvm->arch.hpt_npte) {
+ err = -EINVAL;
break;
+ }
hptp = (__be64 *)(kvm->arch.hpt_virt + (i * HPTE_SIZE));
lbuf = (unsigned long __user *)buf;
@@ -1422,26 +1423,28 @@ static ssize_t kvm_htab_write(struct file *file, const char __user *buf,
__be64 hpte_v;
__be64 hpte_r;
- err = -EFAULT;
if (__get_user(hpte_v, lbuf) ||
- __get_user(hpte_r, lbuf + 1))
+ __get_user(hpte_r, lbuf + 1)) {
+ err = -EFAULT;
goto out;
+ }
v = be64_to_cpu(hpte_v);
r = be64_to_cpu(hpte_r);
- err = -EINVAL;
- if (!(v & HPTE_V_VALID))
+ if (!(v & HPTE_V_VALID)) {
+ err = -EINVAL;
goto out;
+ }
lbuf += 2;
nb += HPTE_SIZE;
if (be64_to_cpu(hptp[0]) & (HPTE_V_VALID | HPTE_V_ABSENT))
kvmppc_do_h_remove(kvm, 0, i, 0, tmp);
- err = -EIO;
ret = kvmppc_virtmode_do_h_enter(kvm, H_EXACT, i, v, r,
tmp);
if (ret != H_SUCCESS) {
pr_err("kvm_htab_write ret %ld i=%ld v=%lx "
"r=%lx\n", ret, i, v, r);
+ err = -EIO;
goto out;
}
if (!hpte_setup && is_vrma_hpte(v)) {
@@ -1465,7 +1468,6 @@ static ssize_t kvm_htab_write(struct file *file, const char __user *buf,
++i;
hptp += 2;
}
- err = 0;
}
out:
--
2.11.0
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/11] PowerPC-KVM: Fine-tuning for some function implementations SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:20 +0100
[PATCH 02/11] KVM: PPC: Book3S HV: Improve a size determination in kvmppc_alloc_hpt() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
[PATCH 07/11] KVM: PPC: Book3S HV: Improve size determinations in five functions SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
[PATCH 01/11] KVM: PPC: Book3S HV: Move assignments for the variable "err" in kvm_htab_write() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
Re: [PATCH 01/11] KVM: PPC: Book3S HV: Move assignments for the variable "err" in kvm_htab_write() Paolo Bonzini <pbonzini@redhat.com> - 2017-01-23 15:20 +0100
[PATCH 10/11] KVM: PPC: e500: Use kcalloc() in e500_mmu_host_init() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
[PATCH 04/11] KVM: PPC: Book3S HV: Use common error handling code in kvmppc_clr_passthru_irq() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
[PATCH 03/11] KVM: PPC: Book3S HV: Move error code assignments in two functions SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
Re: [PATCH 03/11] KVM: PPC: Book3S HV: Move error code assignments in two functions Paolo Bonzini <pbonzini@redhat.com> - 2017-01-23 15:20 +0100
[PATCH 06/11] KVM: PPC: Book3S HV: Use kcalloc() in kvmppc_alloc_host_rm_ops() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
[PATCH 09/11] KVM: PPC: Book3S: Improve a size determination in two functions SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:30 +0100
Re: [PATCH 09/11] KVM: PPC: Book3S: Improve a size determination in two functions kbuild test robot <lkp@intel.com> - 2017-01-21 07:40 +0100
[PATCH 11/11] KVM: PPC: Return directly after a failed copy_from_user() in two functions SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:40 +0100
[PATCH 08/11] KVM: PPC: Book3S: Use seq_puts() in xics_debug_show() SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:40 +0100
[PATCH 05/11] KVM: PPC: Book3S HV: Adjust nine checks for null pointers SF Markus Elfring <elfring@users.sourceforge.net> - 2017-01-20 19:40 +0100
Re: [PATCH 05/11] KVM: PPC: Book3S HV: Adjust nine checks for null pointers Thomas Huth <thuth@redhat.com> - 2017-01-23 20:30 +0100
csiph-web