Hi Dan, Thanks for reaching out. I do have the same question before. If I remember it correctly, the 'chan' is returned by to_sf_pdma_chan() which contains 'dchan'. 'chan' s unlikely to be NULL since it's container. I agreed that the code logic causes confused easily. Now the driver is in -next branch. I can check with maintainer where/when to fix it. -- Green On Sat, Nov 16, 2019 at 4:23 PM Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote: > > Hello Green Wan, > > This is a semi-automatic email about new static checker warnings. > > The patch 6973886ad58e: "dmaengine: sf-pdma: add platform DMA support > for HiFive Unleashed A00" from Nov 7, 2019, leads to the following > Smatch complaint: > > drivers/dma/sf-pdma/sf-pdma.c:103 sf_pdma_prep_dma_memcpy() > error: we previously assumed 'chan' could be null (see line 97) > > drivers/dma/sf-pdma/sf-pdma.c > 96 > 97 if (chan && (!len || !dest || !src)) { > ^^^^ > Check for NULL > > 98 dev_err(chan->pdma->dma_dev.dev, > 99 "Please check dma len, dest, src!\n"); > 100 return NULL; > 101 } > 102 > 103 desc = sf_pdma_alloc_desc(chan); > ^^^^ > Unchecked dereference inside the function. > > 104 if (!desc) > 105 return NULL; > > regards, > dan carpenter