From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Date: Sat, 11 Feb 2017 05:14:25 +0000 Subject: [bug report] KVM: PPC: Book3S HV: Outline of KVM-HV HPT resizing implementation Message-Id: <20170211051425.GA16625@mwanda> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ppc@vger.kernel.org Hello David Gibson, The patch 5e9859699aba: "KVM: PPC: Book3S HV: Outline of KVM-HV HPT resizing implementation" from Dec 20, 2016, leads to the following static checker warning: arch/powerpc/kvm/book3s_64_mmu_hv.c:1554 kvm_vm_ioctl_resize_hpt_commit() error: we previously assumed 'resize' could be null (see line 1532) arch/powerpc/kvm/book3s_64_mmu_hv.c 1514 mutex_lock(&kvm->lock); 1515 1516 resize = kvm->arch.resize_hpt; 1517 1518 /* This shouldn't be possible */ 1519 ret = -EIO; 1520 if (WARN_ON(!kvm->arch.hpte_setup_done)) 1521 goto out_no_hpt; 1522 1523 /* Stop VCPUs from running while we mess with the HPT */ 1524 kvm->arch.hpte_setup_done = 0; 1525 smp_mb(); 1526 1527 /* Boot all CPUs out of the guest so they re-read 1528 * hpte_setup_done */ 1529 on_each_cpu(resize_hpt_boot_vcpu, NULL, 1); 1530 1531 ret = -ENXIO; 1532 if (!resize || (resize->order != shift)) ^^^^^^ Check. 1533 goto out; 1534 1535 ret = -EBUSY; 1536 if (!resize->prepare_done) 1537 goto out; 1538 1539 ret = resize->error; 1540 if (ret != 0) 1541 goto out; 1542 1543 ret = resize_hpt_rehash(resize); 1544 if (ret != 0) 1545 goto out; 1546 1547 resize_hpt_pivot(resize); 1548 1549 out: 1550 /* Let VCPUs run again */ 1551 kvm->arch.hpte_setup_done = 1; 1552 smp_mb(); 1553 out_no_hpt: 1554 resize_hpt_release(kvm, resize); ^^^^^^ Oops. 1555 mutex_unlock(&kvm->lock); 1556 return ret; 1557 } regards, dan carpenter