[PATCH v6 21/36] drm: v3d: fix common struct sg_table related issues

kernel test robot lkp at intel.com
Thu Jun 18 22:28:01 UTC 2020


Hi Marek,

I love your patch! Perhaps something to improve:

[auto build test WARNING on next-20200618]
[also build test WARNING on v5.8-rc1]
[cannot apply to linuxtv-media/master staging/staging-testing drm-exynos/exynos-drm-next drm-intel/for-linux-next linus/master v5.8-rc1 v5.7 v5.7-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  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/20200619-000417
base:    ce2cc8efd7a40cbd17841add878cb691d0ce0bba
config: alpha-allyesconfig (attached as .config)
compiler: alpha-linux-gcc (GCC) 9.3.0
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
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha 

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

All warnings (new ones prefixed by >>, old ones prefixed by <<):

In file included from include/linux/kernel.h:11,
from include/linux/delay.h:22,
from drivers/gpu/drm/v3d/v3d_drv.h:4,
from drivers/gpu/drm/v3d/v3d_mmu.c:21:
drivers/gpu/drm/v3d/v3d_mmu.c: In function 'v3d_mmu_insert_ptes':
include/linux/compiler.h:339:38: error: call to '__compiletime_assert_254' declared with attribute error: BUILD_BUG_ON failed: V3D_MMU_PAGE_SHIFT != PAGE_SIZE
339 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|                                      ^
include/linux/compiler.h:320:4: note: in definition of macro '__compiletime_assert'
320 |    prefix ## suffix();             |    ^~~~~~
include/linux/compiler.h:339:2: note: in expansion of macro '_compiletime_assert'
339 |  _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
|  ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
|                                     ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 |  BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
|  ^~~~~~~~~~~~~~~~
>> drivers/gpu/drm/v3d/v3d_mmu.c:100:3: note: in expansion of macro 'BUILD_BUG_ON'
100 |   BUILD_BUG_ON(V3D_MMU_PAGE_SHIFT != PAGE_SIZE);
|   ^~~~~~~~~~~~

vim +/BUILD_BUG_ON +100 drivers/gpu/drm/v3d/v3d_mmu.c

    86	
    87	void v3d_mmu_insert_ptes(struct v3d_bo *bo)
    88	{
    89		struct drm_gem_shmem_object *shmem_obj = &bo->base;
    90		struct v3d_dev *v3d = to_v3d_dev(shmem_obj->base.dev);
    91		u32 page = bo->node.start;
    92		u32 page_prot = V3D_PTE_WRITEABLE | V3D_PTE_VALID;
    93		struct sg_dma_page_iter dma_iter;
    94	
    95		for_each_sgtable_dma_page(shmem_obj->sgt, &dma_iter, 0) {
    96			dma_addr_t dma_addr = sg_page_iter_dma_address(&dma_iter);
    97			u32 page_address = dma_addr >> V3D_MMU_PAGE_SHIFT;
    98			u32 pte = page_prot | page_address;
    99	
 > 100			BUILD_BUG_ON(V3D_MMU_PAGE_SHIFT != PAGE_SIZE);
   101			BUG_ON(page_address + 1 >= BIT(24));
   102			v3d->pt[page++] = pte;
   103		}
   104	
   105		WARN_ON_ONCE(page - bo->node.start !=
   106			     shmem_obj->base.size >> V3D_MMU_PAGE_SHIFT);
   107	
   108		if (v3d_mmu_flush_all(v3d))
   109			dev_err(v3d->drm.dev, "MMU flush timeout\n");
   110	}
   111	

---
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: 65125 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20200619/f1e73180/attachment-0001.gz>


More information about the dri-devel mailing list