[driver-core:class_cleanup 105/105] drivers/sbus/char/oradax.c:328:13: warning: assignment to 'int' from 'struct class *' makes integer from pointer without a cast

kernel test robot <[email protected]>
Newsgroups org.linuxdriverproject.driverdev-devel,dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git class_cleanup
head:   1aadd5ac1a81f64fb8fea994e05879a587100755
commit: 1aadd5ac1a81f64fb8fea994e05879a587100755 [105/105] driver core: convert class_create() to class_register()
config: sparc-allyesconfig (https://download.01.org/0day-ci/archive/20230331/[email protected]/config)
compiler: sparc64-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://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git/commit/?id=1aadd5ac1a81f64fb8fea994e05879a587100755
        git remote add driver-core https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
        git fetch --no-tags driver-core class_cleanup
        git checkout 1aadd5ac1a81f64fb8fea994e05879a587100755
        # 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=sparc olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=sparc SHELL=/bin/bash drivers/sbus/

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/sbus/char/oradax.c: In function 'dax_attach':
   drivers/sbus/char/oradax.c:328:28: error: passing argument 1 of 'class_create' from incompatible pointer type [-Werror=incompatible-pointer-types]
     328 |         ret = class_create(&cl);
         |                            ^~~
         |                            |
         |                            const struct class *
   In file included from include/linux/device.h:31,
                    from include/linux/cdev.h:8,
                    from drivers/sbus/char/oradax.c:27:
   include/linux/device/class.h:229:54: note: expected 'const char *' but argument is of type 'const struct class *'
     229 | struct class * __must_check class_create(const char *name);
         |                                          ~~~~~~~~~~~~^~~~
>> drivers/sbus/char/oradax.c:328:13: warning: assignment to 'int' from 'struct class *' makes integer from pointer without a cast [-Wint-conversion]
     328 |         ret = class_create(&cl);
         |             ^
   cc1: some warnings being treated as errors


vim +328 drivers/sbus/char/oradax.c

   238	
   239	static int __init dax_attach(void)
   240	{
   241		unsigned long dummy, hv_rv, major, minor, minor_requested, max_ccbs;
   242		struct mdesc_handle *hp = mdesc_grab();
   243		char *prop, *dax_name;
   244		bool found = false;
   245		int len, ret = 0;
   246		u64 pn;
   247	
   248		if (hp == NULL) {
   249			dax_err("Unable to grab mdesc");
   250			return -ENODEV;
   251		}
   252	
   253		mdesc_for_each_node_by_name(hp, pn, "virtual-device") {
   254			prop = (char *)mdesc_get_property(hp, pn, "name", &len);
   255			if (prop == NULL)
   256				continue;
   257			if (strncmp(prop, "dax", strlen("dax")))
   258				continue;
   259			dax_dbg("Found node 0x%llx = %s", pn, prop);
   260	
   261			prop = (char *)mdesc_get_property(hp, pn, "compatible", &len);
   262			if (prop == NULL)
   263				continue;
   264			dax_dbg("Found node 0x%llx = %s", pn, prop);
   265			found = true;
   266			break;
   267		}
   268	
   269		if (!found) {
   270			dax_err("No DAX device found");
   271			ret = -ENODEV;
   272			goto done;
   273		}
   274	
   275		if (strncmp(prop, DAX2_STR, strlen(DAX2_STR)) == 0) {
   276			dax_name = DAX_NAME "2";
   277			major = DAX2_MAJOR;
   278			minor_requested = DAX2_MINOR;
   279			max_ccb_version = 1;
   280			dax_dbg("MD indicates DAX2 coprocessor");
   281		} else if (strncmp(prop, DAX1_STR, strlen(DAX1_STR)) == 0) {
   282			dax_name = DAX_NAME "1";
   283			major = DAX1_MAJOR;
   284			minor_requested = DAX1_MINOR;
   285			max_ccb_version = 0;
   286			dax_dbg("MD indicates DAX1 coprocessor");
   287		} else {
   288			dax_err("Unknown dax type: %s", prop);
   289			ret = -ENODEV;
   290			goto done;
   291		}
   292	
   293		minor = minor_requested;
   294		dax_dbg("Registering DAX HV api with major %ld minor %ld", major,
   295			minor);
   296		if (sun4v_hvapi_register(HV_GRP_DAX, major, &minor)) {
   297			dax_err("hvapi_register failed");
   298			ret = -ENODEV;
   299			goto done;
   300		} else {
   301			dax_dbg("Max minor supported by HV = %ld (major %ld)", minor,
   302				major);
   303			minor = min(minor, minor_requested);
   304			dax_dbg("registered DAX major %ld minor %ld", major, minor);
   305		}
   306	
   307		/* submit a zero length ccb array to query coprocessor queue size */
   308		hv_rv = sun4v_ccb_submit(0, 0, HV_CCB_QUERY_CMD, 0, &max_ccbs, &dummy);
   309		if (hv_rv != 0) {
   310			dax_err("get_hwqueue_size failed with status=%ld and max_ccbs=%ld",
   311				hv_rv, max_ccbs);
   312			ret = -ENODEV;
   313			goto done;
   314		}
   315	
   316		if (max_ccbs != DAX_MAX_CCBS) {
   317			dax_err("HV reports unsupported max_ccbs=%ld", max_ccbs);
   318			ret = -ENODEV;
   319			goto done;
   320		}
   321	
   322		if (alloc_chrdev_region(&first, 0, 1, DAX_NAME) < 0) {
   323			dax_err("alloc_chrdev_region failed");
   324			ret = -ENXIO;
   325			goto done;
   326		}
   327	
 > 328		ret = class_create(&cl);
   329		if (ret)
   330			goto class_error;
   331	
   332		if (device_create(&cl, NULL, first, NULL, dax_name) == NULL) {
   333			dax_err("device_create failed");
   334			ret = -ENXIO;
   335			goto device_error;
   336		}
   337	
   338		cdev_init(&c_dev, &dax_fops);
   339		if (cdev_add(&c_dev, first, 1) == -1) {
   340			dax_err("cdev_add failed");
   341			ret = -ENXIO;
   342			goto cdev_error;
   343		}
   344	
   345		pr_info("Attached DAX module\n");
   346		goto done;
   347	
   348	cdev_error:
   349		device_destroy(&cl, first);
   350	device_error:
   351		class_unregister(&cl);
   352	class_error:
   353		unregister_chrdev_region(first, 1);
   354	done:
   355		mdesc_release(hp);
   356		return ret;
   357	}
   358	module_init(dax_attach);
   359	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.