[bug report] dma-buf: Clarify that dma-buf sg lists are page aligned

Dan Carpenter dan.carpenter at oracle.com
Mon Nov 2 08:15:08 UTC 2020


Hello Jianxin Xiong,

The patch ac80cd17a615: "dma-buf: Clarify that dma-buf sg lists are
page aligned" from Oct 14, 2020, leads to the following static
checker warning:

	drivers/dma-buf/dma-buf.c:917 dma_buf_map_attachment()
	error: 'sg_table' dereferencing possible ERR_PTR()

drivers/dma-buf/dma-buf.c
   897          sg_table = attach->dmabuf->ops->map_dma_buf(attach, direction);
   898          if (!sg_table)
   899                  sg_table = ERR_PTR(-ENOMEM);
   900  
   901          if (IS_ERR(sg_table) && dma_buf_is_dynamic(attach->dmabuf) &&
   902               !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY))
   903                  dma_buf_unpin(attach);
   904  
   905          if (!IS_ERR(sg_table) && attach->dmabuf->ops->cache_sgt_mapping) {
                    ^^^^^^^^^^^^^^^^^

   906                  attach->sgt = sg_table;
   907                  attach->dir = direction;
   908          }
   909  
   910  #ifdef CONFIG_DMA_API_DEBUG
   911          {
   912                  struct scatterlist *sg;
   913                  u64 addr;
   914                  int len;
   915                  int i;
   916  
   917                  for_each_sgtable_dma_sg(sg_table, sg, i) {
                                                ^^^^^^^^^
Not checked here.

   918                          addr = sg_dma_address(sg);
   919                          len = sg_dma_len(sg);
   920                          if (!PAGE_ALIGNED(addr) || !PAGE_ALIGNED(len)) {
   921                                  pr_debug("%s: addr %llx or len %x is not page aligned!\n",
   922                                           __func__, addr, len);
   923                          }
   924                  }
   925          }
   926  #endif /* CONFIG_DMA_API_DEBUG */

regards,
dan carpenter


More information about the dri-devel mailing list