[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