[PATCH v9 12/32] drm: msm: fix common struct sg_table related issues

kernel test robot lkp at intel.com
Wed Aug 26 13:26:32 UTC 2020


Hi Marek,

I love your patch! Yet something to improve:

[auto build test ERROR on linuxtv-media/master]
[also build test ERROR on drm-intel/for-linux-next linus/master v5.9-rc2 next-20200826]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Marek-Szyprowski/DRM-fix-struct-sg_table-nents-vs-orig_nents-misuse/20200826-143908
base:   git://linuxtv.org/media_tree.git master
config: arm64-randconfig-r002-20200826 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 7cfcecece0e0430937cf529ce74d3a071a4dedc6)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm64 cross compiling tool for clang build
        # apt-get install binutils-aarch64-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: -z norelro ignored
   aarch64-linux-gnu-ld: fs/orangefs/orangefs-debugfs.o: in function `orangefs_debug_read':
   fs/orangefs/orangefs-debugfs.c:375: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_mode':
   security/apparmor/lsm.c:1559: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_audit':
   security/apparmor/lsm.c:1530: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: crypto/async_tx/async_tx.o: in function `async_tx_channel_switch':
   crypto/async_tx/async_tx.c:118: undefined reference to `dma_wait_for_async_tx'
   aarch64-linux-gnu-ld: crypto/async_tx/async_tx.o: in function `async_tx_quiesce':
   crypto/async_tx/async_tx.c:270: undefined reference to `dma_wait_for_async_tx'
   aarch64-linux-gnu-ld: crypto/async_tx/async_tx.c:270: undefined reference to `dma_wait_for_async_tx'
   aarch64-linux-gnu-ld: crypto/async_tx/async_memcpy.o: in function `async_memcpy':
   crypto/async_tx/async_memcpy.c:43: undefined reference to `dmaengine_get_unmap_data'
   aarch64-linux-gnu-ld: crypto/async_tx/async_memcpy.c:89: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: crypto/async_tx/async_xor.o: in function `async_xor':
   crypto/async_tx/async_xor.c:172: undefined reference to `dmaengine_get_unmap_data'
   aarch64-linux-gnu-ld: crypto/async_tx/async_xor.c:199: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: crypto/async_tx/async_xor.c:199: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: crypto/async_tx/async_xor.c:196: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: crypto/async_tx/async_xor.o: in function `async_xor_val':
   crypto/async_tx/async_xor.c:268: undefined reference to `dmaengine_get_unmap_data'
   aarch64-linux-gnu-ld: crypto/async_tx/async_xor.c:324: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: crypto/async_tx/async_pq.o: in function `async_gen_syndrome':
   crypto/async_tx/async_pq.c:176: undefined reference to `dmaengine_get_unmap_data'
   aarch64-linux-gnu-ld: crypto/async_tx/async_pq.c:233: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: crypto/async_tx/async_pq.c:229: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: crypto/async_tx/async_pq.o: in function `async_syndrome_val':
   crypto/async_tx/async_pq.c:295: undefined reference to `dmaengine_get_unmap_data'
   aarch64-linux-gnu-ld: crypto/async_tx/async_pq.c:412: undefined reference to `dmaengine_unmap_put'
   aarch64-linux-gnu-ld: drivers/xen/sys-hypervisor.o: in function `buildid_show':
   drivers/xen/sys-hypervisor.c:375: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/tty/tty_io.o: in function `tty_line_name':
   drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/tty/tty_io.c:1139: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.o: in function `dsi_dma_workaround_write':
   drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.o: in function `vc4_dsi_host_transfer':
   drivers/gpu/drm/vc4/vc4_dsi.c:564: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.o: in function `dsi_dma_workaround_write':
   drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.o:drivers/gpu/drm/vc4/vc4_dsi.c:581: more undefined references to `dma_sync_wait' follow
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.o: in function `vc4_dsi_bind':
   drivers/gpu/drm/vc4/vc4_dsi.c:1512: undefined reference to `dma_request_chan_by_mask'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.o: in function `dsi_dma_workaround_write':
   drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.c:581: undefined reference to `dma_sync_wait'
   aarch64-linux-gnu-ld: drivers/gpu/drm/vc4/vc4_dsi.o:drivers/gpu/drm/vc4/vc4_dsi.c:581: more undefined references to `dma_sync_wait' follow
   aarch64-linux-gnu-ld: drivers/gpu/drm/msm/msm_gpummu.o: in function `msm_gpummu_map':
>> drivers/gpu/drm/msm/msm_gpummu.c:44: undefined reference to `__compiletime_assert_413'
   aarch64-linux-gnu-ld: drivers/gpu/drm/xlnx/zynqmp_disp.o: in function `zynqmp_disp_layer_release_dma':
   drivers/gpu/drm/xlnx/zynqmp_disp.c:1287: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/gpu/drm/xlnx/zynqmp_disp.c:1287: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/scsi/scsi_transport_sas.o: in function `get_sas_device_type_names':
   drivers/scsi/scsi_transport_sas.c:131: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/scsi/scsi_transport_sas.o: in function `get_sas_linkspeed_names':
   drivers/scsi/scsi_transport_sas.c:158: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/scsi/scsi_transport_sas.c:158: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/scsi/scsi_transport_sas.c:158: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/scsi/scsi_transport_sas.c:158: undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/scsi/scsi_transport_sas.o:drivers/scsi/scsi_transport_sas.c:158: more undefined references to `stpcpy' follow
   aarch64-linux-gnu-ld: drivers/spi/spi-bcm2835.o: in function `bcm2835_dma_init':
   drivers/spi/spi-bcm2835.c:907: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-bcm2835.c:914: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-bcm2835.o: in function `dmaengine_desc_set_reuse':
   include/linux/dmaengine.h:1537: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1537: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1537: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1537: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1537: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: drivers/spi/spi-bcm2835.o: in function `bcm2835_dma_release':
   drivers/spi/spi-bcm2835.c:867: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-bcm2835.c:884: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-fsl-dspi.o: in function `dspi_request_dma':
   drivers/spi/spi-fsl-dspi.c:506: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-fsl-dspi.c:513: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-fsl-dspi.c:572: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-fsl-dspi.c:574: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-fsl-dspi.o: in function `dspi_release_dma':
   drivers/spi/spi-fsl-dspi.c:593: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-fsl-dspi.c:599: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `dma_request_slave_channel_compat':
   include/linux/dmaengine.h:1587: undefined reference to `dma_request_slave_channel'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1587: undefined reference to `dma_request_slave_channel'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1594: undefined reference to `__dma_request_channel'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1594: undefined reference to `__dma_request_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `pxa2xx_spi_dma_setup':
   drivers/spi/spi-pxa2xx-dma.c:209: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.o: in function `pxa2xx_spi_dma_release':
   drivers/spi/spi-pxa2xx-dma.c:223: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-pxa2xx-dma.c:228: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.o: in function `spi_qup_init_dma':
   drivers/spi/spi-qup.c:935: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.c:939: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.c:973: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.o: in function `spi_qup_release_dma':
   drivers/spi/spi-qup.c:921: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.c:923: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.o: in function `spi_qup_init_dma':
   drivers/spi/spi-qup.c:971: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.o: in function `spi_qup_release_dma':
   drivers/spi/spi-qup.c:921: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-qup.o:drivers/spi/spi-qup.c:923: more undefined references to `dma_release_channel' follow
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.o: in function `rockchip_spi_probe':
   drivers/spi/spi-rockchip.c:748: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:759: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:788: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:785: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.o: in function `rockchip_spi_remove':
   drivers/spi/spi-rockchip.c:816: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rockchip.c:818: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rspi.o: in function `rspi_request_dma':
   drivers/spi/spi-rspi.c:1135: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rspi.o:drivers/spi/spi-rspi.c:1148: more undefined references to `dma_release_channel' follow
   aarch64-linux-gnu-ld: drivers/spi/spi-rspi.o: in function `dma_request_slave_channel_compat':
   include/linux/dmaengine.h:1587: undefined reference to `dma_request_slave_channel'
   aarch64-linux-gnu-ld: include/linux/dmaengine.h:1594: undefined reference to `__dma_request_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-rspi.o: in function `rspi_request_dma_chan':
   drivers/spi/spi-rspi.c:1102: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.o: in function `uniphier_spi_probe':
   drivers/spi/spi-uniphier.c:716: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:725: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:734: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:743: undefined reference to `dma_get_slave_caps'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.o: in function `uniphier_spi_remove':
   drivers/spi/spi-uniphier.c:773: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/spi/spi-uniphier.c:775: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/slimbus/qcom-ngd-ctrl.o: in function `qcom_slim_ngd_exit_dma':
   drivers/slimbus/qcom-ngd-ctrl.c:1051: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/slimbus/qcom-ngd-ctrl.c:1056: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/slimbus/qcom-ngd-ctrl.o: in function `qcom_slim_ngd_init_rx_msgq':
   drivers/slimbus/qcom-ngd-ctrl.c:669: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/slimbus/qcom-ngd-ctrl.c:697: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/slimbus/qcom-ngd-ctrl.o: in function `qcom_slim_ngd_init_tx_msgq':
   drivers/slimbus/qcom-ngd-ctrl.c:708: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/slimbus/qcom-ngd-ctrl.c:732: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.o: in function `sh_mobile_i2c_release_dma':
   drivers/i2c/busses/i2c-sh_mobile.c:783: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.c:788: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.c:783: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.c:788: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.o: in function `sh_mobile_i2c_request_dma_chan':
   drivers/i2c/busses/i2c-sh_mobile.c:483: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.c:483: undefined reference to `dma_request_chan'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.c:503: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/i2c/busses/i2c-sh_mobile.c:503: undefined reference to `dma_release_channel'
   aarch64-linux-gnu-ld: drivers/md/raid5.o: in function `raid5d':
   drivers/md/raid5.c:6367: undefined reference to `dma_issue_pending_all'
   aarch64-linux-gnu-ld: drivers/md/raid5.o: in function `raid5_do_work':
   drivers/md/raid5.c:6280: undefined reference to `dma_issue_pending_all'

# https://github.com/0day-ci/linux/commit/ea1faf41c87f65cbbd61c902b1c773a681347a34
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Marek-Szyprowski/DRM-fix-struct-sg_table-nents-vs-orig_nents-misuse/20200826-143908
git checkout ea1faf41c87f65cbbd61c902b1c773a681347a34
vim +44 drivers/gpu/drm/msm/msm_gpummu.c

    27	
    28	static int msm_gpummu_map(struct msm_mmu *mmu, uint64_t iova,
    29			struct sg_table *sgt, size_t len, int prot)
    30	{
    31		struct msm_gpummu *gpummu = to_msm_gpummu(mmu);
    32		unsigned idx = (iova - GPUMMU_VA_START) / GPUMMU_PAGE_SIZE;
    33		struct sg_dma_page_iter dma_iter;
    34		unsigned prot_bits = 0;
    35	
    36		if (prot & IOMMU_WRITE)
    37			prot_bits |= 1;
    38		if (prot & IOMMU_READ)
    39			prot_bits |= 2;
    40	
    41		for_each_sgtable_dma_page(sgt, &dma_iter, 0) {
    42			dma_addr_t addr = sg_page_iter_dma_address(&dma_iter);
    43	
  > 44			BUILD_BUG_ON(GPUMMU_PAGE_SIZE != PAGE_SIZE);
    45			gpummu->table[idx++] = addr | prot_bits;
    46		}
    47	
    48		/* we can improve by deferring flush for multiple map() */
    49		gpu_write(gpummu->gpu, REG_A2XX_MH_MMU_INVALIDATE,
    50			A2XX_MH_MMU_INVALIDATE_INVALIDATE_ALL |
    51			A2XX_MH_MMU_INVALIDATE_INVALIDATE_TC);
    52		return 0;
    53	}
    54	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 41781 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20200826/578b092a/attachment-0001.gz>


More information about the dri-devel mailing list