tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git class_cleanup head: dba7b38cece67048c402887753b21c5e06ae9138 commit: f6c1685b3ed971b0c8d8bb51a3dae1189cca1455 [41/47] accel: make accel_class a static const structure config: sparc-randconfig-r022-20230620 (https://download.01.org/0day-ci/archive/20230621/202306210110.7ADf9kzn-lkp@xxxxxxxxx/config) compiler: sparc64-linux-gcc (GCC) 12.3.0 reproduce: (https://download.01.org/0day-ci/archive/20230621/202306210110.7ADf9kzn-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202306210110.7ADf9kzn-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): drivers/gpu/drm/../../accel/drm_accel.c: In function 'accel_sysfs_destroy': >> drivers/gpu/drm/../../accel/drm_accel.c:52:28: error: incompatible type for argument 1 of 'IS_ERR_OR_NULL' 52 | if (IS_ERR_OR_NULL(accel_class)) | ^~~~~~~~~~~ | | | struct class In file included from include/linux/rwsem.h:17, from include/linux/mm_types.h:13, from include/linux/mmzone.h:22, from include/linux/gfp.h:7, from include/linux/xarray.h:15, from include/linux/list_lru.h:14, from include/linux/fs.h:13, from include/linux/debugfs.h:15, from drivers/gpu/drm/../../accel/drm_accel.c:9: include/linux/err.h:39:68: note: expected 'const void *' but argument is of type 'struct class' 39 | static inline bool __must_check IS_ERR_OR_NULL(__force const void *ptr) | ~~~~~~~~~~~~^~~ >> drivers/gpu/drm/../../accel/drm_accel.c:54:23: error: incompatible type for argument 1 of 'class_destroy' 54 | class_destroy(accel_class); | ^~~~~~~~~~~ | | | struct class In file included from include/linux/device.h:31, from drivers/gpu/drm/../../accel/drm_accel.c:10: include/linux/device/class.h:231:40: note: expected 'const struct class *' but argument is of type 'struct class' 231 | void class_destroy(const struct class *cls); | ~~~~~~~~~~~~~~~~~~~~^~~ >> drivers/gpu/drm/../../accel/drm_accel.c:55:21: error: assignment of read-only variable 'accel_class' 55 | accel_class = NULL; | ^ drivers/gpu/drm/../../accel/drm_accel.c: In function 'accel_set_device_instance_params': >> drivers/gpu/drm/../../accel/drm_accel.c:123:23: error: incompatible types when assigning to type 'const struct class *' from type 'struct class' 123 | kdev->class = accel_class; | ^~~~~~~~~~~ vim +/accel_class +55 drivers/gpu/drm/../../accel/drm_accel.c 8bf4889762a8f5 Oded Gabbay 2022-10-31 49 8bf4889762a8f5 Oded Gabbay 2022-10-31 50 static void accel_sysfs_destroy(void) 8bf4889762a8f5 Oded Gabbay 2022-10-31 51 { 8bf4889762a8f5 Oded Gabbay 2022-10-31 @52 if (IS_ERR_OR_NULL(accel_class)) 8bf4889762a8f5 Oded Gabbay 2022-10-31 53 return; 8bf4889762a8f5 Oded Gabbay 2022-10-31 @54 class_destroy(accel_class); 8bf4889762a8f5 Oded Gabbay 2022-10-31 @55 accel_class = NULL; 8bf4889762a8f5 Oded Gabbay 2022-10-31 56 } 8bf4889762a8f5 Oded Gabbay 2022-10-31 57 2c204f3d53218d Oded Gabbay 2022-10-31 58 static int accel_name_info(struct seq_file *m, void *data) 2c204f3d53218d Oded Gabbay 2022-10-31 59 { 2c204f3d53218d Oded Gabbay 2022-10-31 60 struct drm_info_node *node = (struct drm_info_node *) m->private; 2c204f3d53218d Oded Gabbay 2022-10-31 61 struct drm_minor *minor = node->minor; 2c204f3d53218d Oded Gabbay 2022-10-31 62 struct drm_device *dev = minor->dev; 2c204f3d53218d Oded Gabbay 2022-10-31 63 struct drm_master *master; 2c204f3d53218d Oded Gabbay 2022-10-31 64 2c204f3d53218d Oded Gabbay 2022-10-31 65 mutex_lock(&dev->master_mutex); 2c204f3d53218d Oded Gabbay 2022-10-31 66 master = dev->master; 2c204f3d53218d Oded Gabbay 2022-10-31 67 seq_printf(m, "%s", dev->driver->name); 2c204f3d53218d Oded Gabbay 2022-10-31 68 if (dev->dev) 2c204f3d53218d Oded Gabbay 2022-10-31 69 seq_printf(m, " dev=%s", dev_name(dev->dev)); 2c204f3d53218d Oded Gabbay 2022-10-31 70 if (master && master->unique) 2c204f3d53218d Oded Gabbay 2022-10-31 71 seq_printf(m, " master=%s", master->unique); 2c204f3d53218d Oded Gabbay 2022-10-31 72 if (dev->unique) 2c204f3d53218d Oded Gabbay 2022-10-31 73 seq_printf(m, " unique=%s", dev->unique); 2c204f3d53218d Oded Gabbay 2022-10-31 74 seq_puts(m, "\n"); 2c204f3d53218d Oded Gabbay 2022-10-31 75 mutex_unlock(&dev->master_mutex); 2c204f3d53218d Oded Gabbay 2022-10-31 76 2c204f3d53218d Oded Gabbay 2022-10-31 77 return 0; 2c204f3d53218d Oded Gabbay 2022-10-31 78 } 2c204f3d53218d Oded Gabbay 2022-10-31 79 2c204f3d53218d Oded Gabbay 2022-10-31 80 static const struct drm_info_list accel_debugfs_list[] = { 2c204f3d53218d Oded Gabbay 2022-10-31 81 {"name", accel_name_info, 0} 2c204f3d53218d Oded Gabbay 2022-10-31 82 }; 2c204f3d53218d Oded Gabbay 2022-10-31 83 #define ACCEL_DEBUGFS_ENTRIES ARRAY_SIZE(accel_debugfs_list) 2c204f3d53218d Oded Gabbay 2022-10-31 84 2c204f3d53218d Oded Gabbay 2022-10-31 85 /** 2c204f3d53218d Oded Gabbay 2022-10-31 86 * accel_debugfs_init() - Initialize debugfs for accel minor 2c204f3d53218d Oded Gabbay 2022-10-31 87 * @minor: Pointer to the drm_minor instance. 2c204f3d53218d Oded Gabbay 2022-10-31 88 * @minor_id: The minor's id 2c204f3d53218d Oded Gabbay 2022-10-31 89 * 2c204f3d53218d Oded Gabbay 2022-10-31 90 * This function initializes the drm minor's debugfs members and creates 2c204f3d53218d Oded Gabbay 2022-10-31 91 * a root directory for the minor in debugfs. It also creates common files 2c204f3d53218d Oded Gabbay 2022-10-31 92 * for accelerators and calls the driver's debugfs init callback. 2c204f3d53218d Oded Gabbay 2022-10-31 93 */ 2c204f3d53218d Oded Gabbay 2022-10-31 94 void accel_debugfs_init(struct drm_minor *minor, int minor_id) 2c204f3d53218d Oded Gabbay 2022-10-31 95 { 2c204f3d53218d Oded Gabbay 2022-10-31 96 struct drm_device *dev = minor->dev; 2c204f3d53218d Oded Gabbay 2022-10-31 97 char name[64]; 2c204f3d53218d Oded Gabbay 2022-10-31 98 2c204f3d53218d Oded Gabbay 2022-10-31 99 INIT_LIST_HEAD(&minor->debugfs_list); 2c204f3d53218d Oded Gabbay 2022-10-31 100 mutex_init(&minor->debugfs_lock); 2c204f3d53218d Oded Gabbay 2022-10-31 101 sprintf(name, "%d", minor_id); 2c204f3d53218d Oded Gabbay 2022-10-31 102 minor->debugfs_root = debugfs_create_dir(name, accel_debugfs_root); 2c204f3d53218d Oded Gabbay 2022-10-31 103 2c204f3d53218d Oded Gabbay 2022-10-31 104 drm_debugfs_create_files(accel_debugfs_list, ACCEL_DEBUGFS_ENTRIES, 2c204f3d53218d Oded Gabbay 2022-10-31 105 minor->debugfs_root, minor); 2c204f3d53218d Oded Gabbay 2022-10-31 106 2c204f3d53218d Oded Gabbay 2022-10-31 107 if (dev->driver->debugfs_init) 2c204f3d53218d Oded Gabbay 2022-10-31 108 dev->driver->debugfs_init(minor); 2c204f3d53218d Oded Gabbay 2022-10-31 109 } 2c204f3d53218d Oded Gabbay 2022-10-31 110 2c204f3d53218d Oded Gabbay 2022-10-31 111 /** 2c204f3d53218d Oded Gabbay 2022-10-31 112 * accel_set_device_instance_params() - Set some device parameters for accel device 2c204f3d53218d Oded Gabbay 2022-10-31 113 * @kdev: Pointer to the device instance. 2c204f3d53218d Oded Gabbay 2022-10-31 114 * @index: The minor's index 2c204f3d53218d Oded Gabbay 2022-10-31 115 * 2c204f3d53218d Oded Gabbay 2022-10-31 116 * This function creates the dev_t of the device using the accel major and 2c204f3d53218d Oded Gabbay 2022-10-31 117 * the device's minor number. In addition, it sets the class and type of the 2c204f3d53218d Oded Gabbay 2022-10-31 118 * device instance to the accel sysfs class and device type, respectively. 2c204f3d53218d Oded Gabbay 2022-10-31 119 */ 2c204f3d53218d Oded Gabbay 2022-10-31 120 void accel_set_device_instance_params(struct device *kdev, int index) 2c204f3d53218d Oded Gabbay 2022-10-31 121 { 2c204f3d53218d Oded Gabbay 2022-10-31 122 kdev->devt = MKDEV(ACCEL_MAJOR, index); 2c204f3d53218d Oded Gabbay 2022-10-31 @123 kdev->class = accel_class; 2c204f3d53218d Oded Gabbay 2022-10-31 124 kdev->type = &accel_sysfs_device_minor; 2c204f3d53218d Oded Gabbay 2022-10-31 125 } 2c204f3d53218d Oded Gabbay 2022-10-31 126 :::::: The code at line 55 was first introduced by commit :::::: 8bf4889762a8f5ea25610e426f132f585e9b5ed6 drivers/accel: define kconfig and register a new major :::::: TO: Oded Gabbay <ogabbay@xxxxxxxxxx> :::::: CC: Oded Gabbay <ogabbay@xxxxxxxxxx> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel