Hi Dan,
On 10/04/2019 10:34, Dan Carpenter wrote:
Hello Jean-Philippe Brucker,
This is a semi-automatic email about new static checker warnings.
The patch fac83d29d954: "iommu/io-pgtable-arm: Fix pgtable allocation
in selftest" from Jun 18, 2018, leads to the following Smatch
complaint:
drivers/iommu/io-pgtable-arm.c:246 __arm_lpae_alloc_pages()
error: we previously assumed 'dev' could be null (see line 239)
drivers/iommu/io-pgtable-arm.c
238 VM_BUG_ON((gfp & __GFP_HIGHMEM));
239 p = alloc_pages_node(dev ? dev_to_node(dev) : NUMA_NO_NODE,
^^^
We added a NULL check here
240 gfp | __GFP_ZERO, order);
241 if (!p)
242 return NULL;
243
244 pages = page_address(p);
245 if (!(cfg->quirks & IO_PGTABLE_QUIRK_NO_DMA)) {
The selftests *should* always set this quirk such that they never get to
the DMA mapping calls (that was one of the reasons for implementing
things that way) - I guess that might be a bit too sneaky for Smatch,
but I can take a look to double-check that the flow is working correctly
such that this really is a false-positive.
Robin.
246 dma = dma_map_single(dev, pages, size, DMA_TO_DEVICE);
^^^
But dma_map_single() can't take a NULL argument either.
247 if (dma_mapping_error(dev, dma))
248 goto out_free;
I don't know why this warning is only showing up now, almost a year
later. Sorry about that.
regards,
dan carpenter
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu