Hi Li, Thank you for the patch! Yet something to improve: [auto build test ERROR on usb/usb-testing] [also build test ERROR on westeri-thunderbolt/next staging/staging-testing linus/master v6.0-rc4 next-20220908] [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/Li-Zhong/drivers-usb-core-driver-check-return-value-of-usb_set_interface/20220909-124349 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing config: i386-randconfig-a015 compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) 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/720d6f8c6938ee748288a012e3212b26962a7960 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Li-Zhong/drivers-usb-core-driver-check-return-value-of-usb_set_interface/20220909-124349 git checkout 720d6f8c6938ee748288a012e3212b26962a7960 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/usb/core/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot All errors (new ones prefixed by >>): >> drivers/usb/core/driver.c:1337:13: error: passing 'struct device' to parameter of incompatible type 'const struct device *'; take the address with & dev_err(intf->dev, "usb_set_interface error %d\n", ^~~~~~~~~ & include/linux/dev_printk.h:144:44: note: expanded from macro 'dev_err' dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) ^~~ include/linux/dev_printk.h:110:11: note: expanded from macro 'dev_printk_index_wrap' _p_func(dev, fmt, ##__VA_ARGS__); \ ^~~ include/linux/dev_printk.h:50:36: note: passing argument to parameter 'dev' here void _dev_err(const struct device *dev, const char *fmt, ...); ^ 1 error generated. vim +1337 drivers/usb/core/driver.c 1316 1317 static int usb_resume_interface(struct usb_device *udev, 1318 struct usb_interface *intf, pm_message_t msg, int reset_resume) 1319 { 1320 struct usb_driver *driver; 1321 int status = 0; 1322 1323 if (udev->state == USB_STATE_NOTATTACHED) 1324 goto done; 1325 1326 /* Don't let autoresume interfere with unbinding */ 1327 if (intf->condition == USB_INTERFACE_UNBINDING) 1328 goto done; 1329 1330 /* Can't resume it if it doesn't have a driver. */ 1331 if (intf->condition == USB_INTERFACE_UNBOUND) { 1332 1333 /* Carry out a deferred switch to altsetting 0 */ 1334 if (intf->needs_altsetting0 && !intf->dev.power.is_prepared) { 1335 status = usb_set_interface(udev, intf->altsetting[0].desc.bInterfaceNumber, 0); 1336 if (status < 0) > 1337 dev_err(intf->dev, "usb_set_interface error %d\n", 1338 status); 1339 intf->needs_altsetting0 = 0; 1340 } 1341 goto done; 1342 } 1343 1344 /* Don't resume if the interface is marked for rebinding */ 1345 if (intf->needs_binding) 1346 goto done; 1347 driver = to_usb_driver(intf->dev.driver); 1348 1349 if (reset_resume) { 1350 if (driver->reset_resume) { 1351 status = driver->reset_resume(intf); 1352 if (status) 1353 dev_err(&intf->dev, "%s error %d\n", 1354 "reset_resume", status); 1355 } else { 1356 intf->needs_binding = 1; 1357 dev_dbg(&intf->dev, "no reset_resume for driver %s?\n", 1358 driver->name); 1359 } 1360 } else { 1361 status = driver->resume(intf); 1362 if (status) 1363 dev_err(&intf->dev, "resume error %d\n", status); 1364 } 1365 1366 done: 1367 dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status); 1368 1369 /* Later we will unbind the driver and/or reprobe, if necessary */ 1370 return status; 1371 } 1372 -- 0-DAY CI Kernel Test Service https://01.org/lkp