Przeglądaj źródła

powerpc/iommu: Avoid derefence before pointer check

The tbl pointer is being derefenced by IOMMU_PAGE_SIZE prior the check
if it is not NULL.

Just moving the dereference code to after the check, where there will
be guarantee that 'tbl' will not be NULL.

Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Breno Leitao 7 lat temu
rodzic
commit
984ecdd68d
1 zmienionych plików z 1 dodań i 1 usunięć
  1. 1 1
      arch/powerpc/kernel/iommu.c

+ 1 - 1
arch/powerpc/kernel/iommu.c

@@ -785,9 +785,9 @@ dma_addr_t iommu_map_page(struct device *dev, struct iommu_table *tbl,
 
 
 	vaddr = page_address(page) + offset;
 	vaddr = page_address(page) + offset;
 	uaddr = (unsigned long)vaddr;
 	uaddr = (unsigned long)vaddr;
-	npages = iommu_num_pages(uaddr, size, IOMMU_PAGE_SIZE(tbl));
 
 
 	if (tbl) {
 	if (tbl) {
+		npages = iommu_num_pages(uaddr, size, IOMMU_PAGE_SIZE(tbl));
 		align = 0;
 		align = 0;
 		if (tbl->it_page_shift < PAGE_SHIFT && size >= PAGE_SIZE &&
 		if (tbl->it_page_shift < PAGE_SHIFT && size >= PAGE_SIZE &&
 		    ((unsigned long)vaddr & ~PAGE_MASK) == 0)
 		    ((unsigned long)vaddr & ~PAGE_MASK) == 0)