Hi Matthias,

I love your patch! Perhaps something to improve:

[auto build test WARNING on usb/usb-testing]
[also build test WARNING on robh/for-next char-misc/char-misc-testing v5.11-rc7 
next-20210125]
[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]

url:    
https://github.com/0day-ci/linux/commits/Matthias-Kaehlcke/USB-misc-Add-onboard_usb_hub-driver/20210211-011551
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git 
usb-testing
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 9.3.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/0day-ci/linux/commit/15c43f13a680dab0efc2816a9d632d9d6482b6fc
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Matthias-Kaehlcke/USB-misc-Add-onboard_usb_hub-driver/20210211-011551
        git checkout 15c43f13a680dab0efc2816a9d632d9d6482b6fc
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

>> drivers/usb/misc/onboard_usb_hub.c:277:6: warning: no previous prototype for 
>> 'of_is_onboard_usb_hub' [-Wmissing-prototypes]
     277 | bool of_is_onboard_usb_hub(const struct device_node *np)
         |      ^~~~~~~~~~~~~~~~~~~~~
   drivers/usb/misc/onboard_usb_hub.c: In function 'onboard_hub_probe':
>> drivers/usb/misc/onboard_usb_hub.c:234:8: warning: ignoring return value of 
>> 'driver_attach', declared with attribute warn_unused_result [-Wunused-result]
     234 |  (void)driver_attach(&onboard_hub_usbdev_driver.drvwrap.driver);
         |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
   Depends on SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && HAS_DMA
   Selected by
   - SND_ATMEL_SOC_SSC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC
   - SND_ATMEL_SOC_SSC_PDC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC 
&& ATMEL_SSC


vim +/of_is_onboard_usb_hub +277 drivers/usb/misc/onboard_usb_hub.c

   199  
   200  static int onboard_hub_probe(struct platform_device *pdev)
   201  {
   202          struct device *dev = &pdev->dev;
   203          struct onboard_hub *hub;
   204          int err;
   205  
   206          hub = devm_kzalloc(dev, sizeof(*hub), GFP_KERNEL);
   207          if (!hub)
   208                  return -ENOMEM;
   209  
   210          hub->vdd = devm_regulator_get(dev, "vdd");
   211          if (IS_ERR(hub->vdd))
   212                  return PTR_ERR(hub->vdd);
   213  
   214          hub->dev = dev;
   215          mutex_init(&hub->lock);
   216          INIT_LIST_HEAD(&hub->udev_list);
   217  
   218          dev_set_drvdata(dev, hub);
   219  
   220          err = devm_device_add_group(dev, &onboard_hub_sysfs_group);
   221          if (err) {
   222                  dev_err(dev, "failed to create sysfs entries: %d\n", 
err);
   223                  return err;
   224          }
   225  
   226          err = onboard_hub_power_on(hub);
   227          if (err)
   228                  return err;
   229  
   230          /*
   231           * The USB driver might have been detached from the USB devices 
by
   232           * onboard_hub_remove() make sure to re-attach it if needed.
   233           */
 > 234          (void)driver_attach(&onboard_hub_usbdev_driver.drvwrap.driver);
   235  
   236          return 0;
   237  }
   238  
   239  static int onboard_hub_remove(struct platform_device *pdev)
   240  {
   241          struct onboard_hub *hub = dev_get_drvdata(&pdev->dev);
   242          struct udev_node *node;
   243          struct usb_device *udev;
   244  
   245          hub->going_away = true;
   246  
   247          mutex_lock(&hub->lock);
   248  
   249          /* unbind the USB devices to avoid dangling references to this 
device */
   250          while (!list_empty(&hub->udev_list)) {
   251                  node = list_first_entry(&hub->udev_list, struct 
udev_node, list);
   252                  udev = node->udev;
   253  
   254                  /*
   255                   * Unbinding the driver will call 
onboard_hub_remove_usbdev(),
   256                   * which acquires hub->lock.  We must release the lock 
first.
   257                   */
   258                  get_device(&udev->dev);
   259                  mutex_unlock(&hub->lock);
   260                  device_release_driver(&udev->dev);
   261                  put_device(&udev->dev);
   262                  mutex_lock(&hub->lock);
   263          }
   264  
   265          mutex_unlock(&hub->lock);
   266  
   267          return onboard_hub_power_off(hub);
   268  }
   269  
   270  static const struct of_device_id onboard_hub_match[] = {
   271          { .compatible = "usbbda,411" },
   272          { .compatible = "usbbda,5411" },
   273          {}
   274  };
   275  MODULE_DEVICE_TABLE(of, onboard_hub_match);
   276  
 > 277  bool of_is_onboard_usb_hub(const struct device_node *np)
   278  {
   279          return !!of_match_node(onboard_hub_match, np);
   280  }
   281  EXPORT_SYMBOL_GPL(of_is_onboard_usb_hub);
   282  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to