From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: [bug report] powerpc/mm/iommu, vfio/spapr: Put pages on VFIO container shutdown Date: Tue, 14 Mar 2017 16:39:22 +0300 Message-ID: <20170314133922.GA31823@mwanda> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: kvm@vger.kernel.org To: aik@ozlabs.ru Return-path: Received: from aserp1040.oracle.com ([141.146.126.69]:26611 "EHLO aserp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751047AbdCNNjn (ORCPT ); Tue, 14 Mar 2017 09:39:43 -0400 Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: Hello Alexey Kardashevskiy, The patch 4b6fad7097f8: "powerpc/mm/iommu, vfio/spapr: Put pages on VFIO container shutdown" from Nov 30, 2016, leads to the following static checker warning: drivers/vfio/vfio_iommu_spapr_tce.c:201 tce_iommu_register_pages() error: potential null dereference 'tcemem'. (kzalloc returns null) drivers/vfio/vfio_iommu_spapr_tce.c 176 static long tce_iommu_register_pages(struct tce_container *container, 177 __u64 vaddr, __u64 size) 178 { 179 long ret = 0; 180 struct mm_iommu_table_group_mem_t *mem = NULL; 181 struct tce_iommu_prereg *tcemem; 182 unsigned long entries = size >> PAGE_SHIFT; 183 184 if ((vaddr & ~PAGE_MASK) || (size & ~PAGE_MASK) || 185 ((vaddr + size) < vaddr)) 186 return -EINVAL; 187 188 mem = mm_iommu_find(container->mm, vaddr, entries); 189 if (mem) { 190 list_for_each_entry(tcemem, &container->prereg_list, next) { 191 if (tcemem->mem == mem) 192 return -EBUSY; 193 } 194 } 195 196 ret = mm_iommu_get(container->mm, vaddr, entries, &mem); 197 if (ret) 198 return ret; 199 200 tcemem = kzalloc(sizeof(*tcemem), GFP_KERNEL); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Not checked. 201 tcemem->mem = mem; 202 list_add(&tcemem->next, &container->prereg_list); 203 204 container->enabled = true; 205 206 return 0; 207 } regards, dan carpenter