tree:
https://github.com/jimc/linux.git dd-drm-next
head: 2eec9300d730ad634b967a853579f0b5dffecc01
commit: 25a6802d94cd0a8eb61882bcbf6acdec479a965b [19/20] reg-in-drmdrv
config: openrisc-buildonly-randconfig-r003-20211013 (attached as .config)
compiler: or1k-linux-gcc (GCC) 11.2.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/jimc/linux/commit/25a6802d94cd0a8eb61882bcbf6acdec479a...
git remote add jimc
https://github.com/jimc/linux.git
git fetch --no-tags jimc dd-drm-next
git checkout 25a6802d94cd0a8eb61882bcbf6acdec479a965b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=openrisc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/drm_drv.c: In function 'drm_dev_register':
> drivers/gpu/drm/drm_drv.c:886:15: error: implicit declaration of
function 'dynamic_debug_register_tracer' [-Werror=implicit-function-declaration]
886 | ret = dynamic_debug_register_tracer(THIS_MODULE,
drm_trace_printvaf);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/drm_drv.c: In function 'drm_dev_unregister':
> drivers/gpu/drm/drm_drv.c:957:9: error: implicit declaration of
function 'dynamic_debug_unregister_tracer' [-Werror=implicit-function-declaration]
957 | dynamic_debug_unregister_tracer(THIS_MODULE,
drm_trace_printvaf);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/dynamic_debug_register_tracer +886 drivers/gpu/drm/drm_drv.c
840
841 /**
842 * drm_dev_register - Register DRM device
843 * @dev: Device to register
844 * @flags: Flags passed to the driver's .load() function
845 *
846 * Register the DRM device @dev with the system, advertise device to user-space
847 * and start normal device operation. @dev must be initialized via drm_dev_init()
848 * previously.
849 *
850 * Never call this twice on any device!
851 *
852 * NOTE: To ensure backward compatibility with existing drivers method this
853 * function calls the &drm_driver.load method after registering the device
854 * nodes, creating race conditions. Usage of the &drm_driver.load methods is
855 * therefore deprecated, drivers must perform all initialization before calling
856 * drm_dev_register().
857 *
858 * RETURNS:
859 * 0 on success, negative error code on failure.
860 */
861 int drm_dev_register(struct drm_device *dev, unsigned long flags)
862 {
863 const struct drm_driver *driver = dev->driver;
864 int ret;
865
866 if (!driver->load)
867 drm_mode_config_validate(dev);
868
869 WARN_ON(!dev->managed.final_kfree);
870
871 if (drm_dev_needs_global_mutex(dev))
872 mutex_lock(&drm_global_mutex);
873
874 ret = drm_minor_register(dev, DRM_MINOR_RENDER);
875 if (ret)
876 goto err_minors;
877
878 ret = drm_minor_register(dev, DRM_MINOR_PRIMARY);
879 if (ret)
880 goto err_minors;
881
882 ret = create_compat_control_link(dev);
883 if (ret)
884 goto err_minors;
885
886 ret = dynamic_debug_register_tracer(THIS_MODULE,
drm_trace_printvaf);
887 if (ret)
888 goto err_dyndbg;
889
890 dev->registered = true;
891
892 if (dev->driver->load) {
893 ret = dev->driver->load(dev, flags);
894 if (ret)
895 goto err_minors;
896 }
897
898 if (drm_core_check_feature(dev, DRIVER_MODESET))
899 drm_modeset_register_all(dev);
900
901 DRM_INFO("Initialized %s %d.%d.%d %s for %s on minor %d\n",
902 driver->name, driver->major, driver->minor,
903 driver->patchlevel, driver->date,
904 dev->dev ? dev_name(dev->dev) : "virtual device",
905 dev->primary->index);
906
907 goto out_unlock;
908
909 err_dyndbg:
910 dynamic_debug_register_tracer(THIS_MODULE, drm_trace_printvaf);
911 err_minors:
912 remove_compat_control_link(dev);
913 drm_minor_unregister(dev, DRM_MINOR_PRIMARY);
914 drm_minor_unregister(dev, DRM_MINOR_RENDER);
915 out_unlock:
916 if (drm_dev_needs_global_mutex(dev))
917 mutex_unlock(&drm_global_mutex);
918 return ret;
919 }
920 EXPORT_SYMBOL(drm_dev_register);
921
922 /**
923 * drm_dev_unregister - Unregister DRM device
924 * @dev: Device to unregister
925 *
926 * Unregister the DRM device from the system. This does the reverse of
927 * drm_dev_register() but does not deallocate the device. The caller must call
928 * drm_dev_put() to drop their final reference.
929 *
930 * A special form of unregistering for hotpluggable devices is drm_dev_unplug(),
931 * which can be called while there are still open users of @dev.
932 *
933 * This should be called first in the device teardown code to make sure
934 * userspace can't access the device instance any more.
935 */
936 void drm_dev_unregister(struct drm_device *dev)
937 {
938 if (drm_core_check_feature(dev, DRIVER_LEGACY))
939 drm_lastclose(dev);
940
941 dev->registered = false;
942
943 drm_client_dev_unregister(dev);
944
945 if (drm_core_check_feature(dev, DRIVER_MODESET))
946 drm_modeset_unregister_all(dev);
947
948 if (dev->driver->unload)
949 dev->driver->unload(dev);
950
951 drm_legacy_pci_agp_destroy(dev);
952 drm_legacy_rmmaps(dev);
953
954 remove_compat_control_link(dev);
955 drm_minor_unregister(dev, DRM_MINOR_PRIMARY);
956 drm_minor_unregister(dev, DRM_MINOR_RENDER);
957 dynamic_debug_unregister_tracer(THIS_MODULE,
drm_trace_printvaf);
958 }
959 EXPORT_SYMBOL(drm_dev_unregister);
960
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org