Hi Dmitry,

I love your patch! Perhaps something to improve:

[auto build test WARNING on drm-misc/drm-misc-next]
[cannot apply to drm/drm-next drm-intel/for-linux-next 
drm-intel/for-linux-next-fixes drm-tip/drm-tip linus/master v6.2 next-20230227]
[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#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Dmitry-Osipenko/drm-shmem-helper-Factor-out-pages-alloc-release-from-drm_gem_shmem_get-put_pages/20230227-140619
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    
https://lore.kernel.org/r/20230227060219.904986-6-dmitry.osipenko%40collabora.com
patch subject: [PATCH v11 05/10] drm/shmem-helper: Add memory shrinker
config: s390-allyesconfig 
(https://download.01.org/0day-ci/archive/20230227/[email protected]/config)
compiler: s390-linux-gcc (GCC) 12.1.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
        # 
https://github.com/intel-lab-lkp/linux/commit/c4d106484ddbebccf4219dacbc2a9975909f4c2a
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Dmitry-Osipenko/drm-shmem-helper-Factor-out-pages-alloc-release-from-drm_gem_shmem_get-put_pages/20230227-140619
        git checkout c4d106484ddbebccf4219dacbc2a9975909f4c2a
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
O=build_dir ARCH=s390 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
O=build_dir ARCH=s390 SHELL=/bin/bash drivers/gpu/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>
| Link: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All warnings (new ones prefixed by >>):

>> drivers/gpu/drm/drm_gem_shmem_helper.c:832:18: warning: no previous 
>> prototype for 'drm_gem_shmem_get_pages_sgt_locked' [-Wmissing-prototypes]
     832 | struct sg_table *drm_gem_shmem_get_pages_sgt_locked(struct 
drm_gem_shmem_object *shmem)
         |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_gem_shmem_helper.c: In function 
'drm_gem_shmem_shrinker_scan_objects':
   drivers/gpu/drm/drm_gem_shmem_helper.c:1015:47: error: passing argument 3 of 
'drm_gem_lru_scan' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
    1015 |                                   nr_to_scan, &remaining,
         |                                               ^~~~~~~~~~
         |                                               |
         |                                               long unsigned int *
   In file included from include/drm/drm_gem_shmem_helper.h:12,
                    from drivers/gpu/drm/drm_gem_shmem_helper.c:22:
   include/drm/drm_gem.h:490:39: note: expected 'bool (*)(struct drm_gem_object 
*)' {aka '_Bool (*)(struct drm_gem_object *)'} but argument is of type 'long 
unsigned int *'
     490 |                                bool (*shrink)(struct drm_gem_object 
*obj));
         |                                
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_gem_shmem_helper.c:1014:18: error: too many arguments to 
function 'drm_gem_lru_scan'
    1014 |         freed += drm_gem_lru_scan(&shmem_shrinker->lru_evictable,
         |                  ^~~~~~~~~~~~~~~~
   include/drm/drm_gem.h:489:15: note: declared here
     489 | unsigned long drm_gem_lru_scan(struct drm_gem_lru *lru, unsigned 
nr_to_scan,
         |               ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_gem_shmem_helper.c:1021:63: error: passing argument 3 of 
'drm_gem_lru_scan' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
    1021 |                                           nr_to_scan - freed, 
&remaining,
         |                                                               
^~~~~~~~~~
         |                                                               |
         |                                                               long 
unsigned int *
   include/drm/drm_gem.h:490:39: note: expected 'bool (*)(struct drm_gem_object 
*)' {aka '_Bool (*)(struct drm_gem_object *)'} but argument is of type 'long 
unsigned int *'
     490 |                                bool (*shrink)(struct drm_gem_object 
*obj));
         |                                
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/drm_gem_shmem_helper.c:1020:26: error: too many arguments to 
function 'drm_gem_lru_scan'
    1020 |                 freed += 
drm_gem_lru_scan(&shmem_shrinker->lru_evictable,
         |                          ^~~~~~~~~~~~~~~~
   include/drm/drm_gem.h:489:15: note: declared here
     489 | unsigned long drm_gem_lru_scan(struct drm_gem_lru *lru, unsigned 
nr_to_scan,
         |               ^~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/drm_gem_shmem_get_pages_sgt_locked +832 
drivers/gpu/drm/drm_gem_shmem_helper.c

   831  
 > 832  struct sg_table *drm_gem_shmem_get_pages_sgt_locked(struct 
 > drm_gem_shmem_object *shmem)
   833  {
   834          struct drm_gem_object *obj = &shmem->base;
   835          int ret;
   836          struct sg_table *sgt;
   837  
   838          if (shmem->sgt)
   839                  return shmem->sgt;
   840  
   841          drm_WARN_ON(obj->dev, obj->import_attach);
   842  
   843          ret = drm_gem_shmem_get_pages(shmem);
   844          if (ret)
   845                  return ERR_PTR(ret);
   846  
   847          sgt = drm_gem_shmem_get_sg_table(shmem);
   848          if (IS_ERR(sgt)) {
   849                  ret = PTR_ERR(sgt);
   850                  goto err_put_pages;
   851          }
   852          /* Map the pages for use by the h/w. */
   853          ret = dma_map_sgtable(obj->dev->dev, sgt, DMA_BIDIRECTIONAL, 0);
   854          if (ret)
   855                  goto err_free_sgt;
   856  
   857          shmem->sgt = sgt;
   858  
   859          drm_gem_shmem_update_pages_state(shmem);
   860  
   861          return sgt;
   862  
   863  err_free_sgt:
   864          sg_free_table(sgt);
   865          kfree(sgt);
   866  err_put_pages:
   867          drm_gem_shmem_put_pages(shmem);
   868          return ERR_PTR(ret);
   869  }
   870  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

Reply via email to