Hi Maíra,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on drm-misc/drm-misc-next]
[also build test ERROR on drm-intel/for-linux-next drm-tip/drm-tip 
next-20230131]
[cannot apply to drm-intel/for-linux-next-fixes linus/master v6.2-rc6]
[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/Ma-ra-Canal/drm-debugfs-Introduce-wrapper-for-debugfs-list/20230130-203549
base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
patch link:    
https://lore.kernel.org/r/20230130123008.287141-3-mcanal%40igalia.com
patch subject: [PATCH v2 2/6] drm/debugfs: Make drm_device use the struct 
drm_debugfs_files
config: arc-randconfig-r043-20230129 
(https://download.01.org/0day-ci/archive/20230201/[email protected]/config)
compiler: arceb-elf-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/776660a442d9112d8fbc06b0b8b0b77852b18fca
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Ma-ra-Canal/drm-debugfs-Introduce-wrapper-for-debugfs-list/20230130-203549
        git checkout 776660a442d9112d8fbc06b0b8b0b77852b18fca
        # 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=arc olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 
O=build_dir ARCH=arc SHELL=/bin/bash drivers/gpu/drm/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

All error/warnings (new ones prefixed by >>):

   drivers/gpu/drm/drm_drv.c: In function 'drm_dev_init_release':
>> drivers/gpu/drm/drm_drv.c:602:9: error: implicit declaration of function 
>> 'drm_debugfs_files_destroy'; did you mean 'drm_debugfs_list_destroy'? 
>> [-Werror=implicit-function-declaration]
     602 |         drm_debugfs_files_destroy(dev->debugfs_files);
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~
         |         drm_debugfs_list_destroy
   drivers/gpu/drm/drm_drv.c: In function 'drm_dev_init':
>> drivers/gpu/drm/drm_drv.c:650:30: error: implicit declaration of function 
>> 'drm_debugfs_files_init'; did you mean 'drm_debugfs_list_init'? 
>> [-Werror=implicit-function-declaration]
     650 |         dev->debugfs_files = drm_debugfs_files_init();
         |                              ^~~~~~~~~~~~~~~~~~~~~~
         |                              drm_debugfs_list_init
>> drivers/gpu/drm/drm_drv.c:650:28: warning: assignment to 'struct 
>> drm_debugfs_files *' from 'int' makes pointer from integer without a cast 
>> [-Wint-conversion]
     650 |         dev->debugfs_files = drm_debugfs_files_init();
         |                            ^
   cc1: some warnings being treated as errors


vim +602 drivers/gpu/drm/drm_drv.c

   562  
   563  /**
   564   * DOC: component helper usage recommendations
   565   *
   566   * DRM drivers that drive hardware where a logical device consists of a 
pile of
   567   * independent hardware blocks are recommended to use the 
:ref:`component helper
   568   * library<component>`. For consistency and better options for code 
reuse the
   569   * following guidelines apply:
   570   *
   571   *  - The entire device initialization procedure should be run from the
   572   *    &component_master_ops.master_bind callback, starting with
   573   *    devm_drm_dev_alloc(), then binding all components with
   574   *    component_bind_all() and finishing with drm_dev_register().
   575   *
   576   *  - The opaque pointer passed to all components through 
component_bind_all()
   577   *    should point at &struct drm_device of the device instance, not 
some driver
   578   *    specific private structure.
   579   *
   580   *  - The component helper fills the niche where further 
standardization of
   581   *    interfaces is not practical. When there already is, or will be, a
   582   *    standardized interface like &drm_bridge or &drm_panel, providing 
its own
   583   *    functions to find such components at driver load time, like
   584   *    drm_of_find_panel_or_bridge(), then the component helper should 
not be
   585   *    used.
   586   */
   587  
   588  static void drm_dev_init_release(struct drm_device *dev, void *res)
   589  {
   590          drm_legacy_ctxbitmap_cleanup(dev);
   591          drm_legacy_remove_map_hash(dev);
   592          drm_fs_inode_free(dev->anon_inode);
   593  
   594          put_device(dev->dev);
   595          /* Prevent use-after-free in drm_managed_release when debugging 
is
   596           * enabled. Slightly awkward, but can't really be helped. */
   597          dev->dev = NULL;
   598          mutex_destroy(&dev->master_mutex);
   599          mutex_destroy(&dev->clientlist_mutex);
   600          mutex_destroy(&dev->filelist_mutex);
   601          mutex_destroy(&dev->struct_mutex);
 > 602          drm_debugfs_files_destroy(dev->debugfs_files);
   603          drm_legacy_destroy_members(dev);
   604  }
   605  
   606  static int drm_dev_init(struct drm_device *dev,
   607                          const struct drm_driver *driver,
   608                          struct device *parent)
   609  {
   610          struct inode *inode;
   611          int ret;
   612  
   613          if (!drm_core_init_complete) {
   614                  DRM_ERROR("DRM core is not initialized\n");
   615                  return -ENODEV;
   616          }
   617  
   618          if (WARN_ON(!parent))
   619                  return -EINVAL;
   620  
   621          kref_init(&dev->ref);
   622          dev->dev = get_device(parent);
   623          dev->driver = driver;
   624  
   625          INIT_LIST_HEAD(&dev->managed.resources);
   626          spin_lock_init(&dev->managed.lock);
   627  
   628          /* no per-device feature limits by default */
   629          dev->driver_features = ~0u;
   630  
   631          if (drm_core_check_feature(dev, DRIVER_COMPUTE_ACCEL) &&
   632                                  (drm_core_check_feature(dev, 
DRIVER_RENDER) ||
   633                                  drm_core_check_feature(dev, 
DRIVER_MODESET))) {
   634                  DRM_ERROR("DRM driver can't be both a compute 
acceleration and graphics driver\n");
   635                  return -EINVAL;
   636          }
   637  
   638          drm_legacy_init_members(dev);
   639          INIT_LIST_HEAD(&dev->filelist);
   640          INIT_LIST_HEAD(&dev->filelist_internal);
   641          INIT_LIST_HEAD(&dev->clientlist);
   642          INIT_LIST_HEAD(&dev->vblank_event_list);
   643  
   644          spin_lock_init(&dev->event_lock);
   645          mutex_init(&dev->struct_mutex);
   646          mutex_init(&dev->filelist_mutex);
   647          mutex_init(&dev->clientlist_mutex);
   648          mutex_init(&dev->master_mutex);
   649  
 > 650          dev->debugfs_files = drm_debugfs_files_init();
   651  
   652          ret = drmm_add_action_or_reset(dev, drm_dev_init_release, NULL);
   653          if (ret)
   654                  return ret;
   655  
   656          inode = drm_fs_inode_new();
   657          if (IS_ERR(inode)) {
   658                  ret = PTR_ERR(inode);
   659                  DRM_ERROR("Cannot allocate anonymous inode: %d\n", ret);
   660                  goto err;
   661          }
   662  
   663          dev->anon_inode = inode;
   664  
   665          if (drm_core_check_feature(dev, DRIVER_COMPUTE_ACCEL)) {
   666                  ret = drm_minor_alloc(dev, DRM_MINOR_ACCEL);
   667                  if (ret)
   668                          goto err;
   669          } else {
   670                  if (drm_core_check_feature(dev, DRIVER_RENDER)) {
   671                          ret = drm_minor_alloc(dev, DRM_MINOR_RENDER);
   672                          if (ret)
   673                                  goto err;
   674                  }
   675  
   676                  ret = drm_minor_alloc(dev, DRM_MINOR_PRIMARY);
   677                  if (ret)
   678                          goto err;
   679          }
   680  
   681          ret = drm_legacy_create_map_hash(dev);
   682          if (ret)
   683                  goto err;
   684  
   685          drm_legacy_ctxbitmap_init(dev);
   686  
   687          if (drm_core_check_feature(dev, DRIVER_GEM)) {
   688                  ret = drm_gem_init(dev);
   689                  if (ret) {
   690                          DRM_ERROR("Cannot initialize graphics execution 
manager (GEM)\n");
   691                          goto err;
   692                  }
   693          }
   694  
   695          ret = drm_dev_set_unique(dev, dev_name(parent));
   696          if (ret)
   697                  goto err;
   698  
   699          return 0;
   700  
   701  err:
   702          drm_managed_release(dev);
   703  
   704          return ret;
   705  }
   706  

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

Reply via email to