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

Reply via email to