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/202302010102.Zlw3VTYI-lkp@xxxxxxxxx/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 <lkp@xxxxxxxxx> 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