CC: kbuild-...@lists.01.org
CC: linux-ker...@vger.kernel.org
TO: Li Jun <jun...@nxp.com>
CC: Peter Chen <peter.c...@nxp.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   42f82040ee66db13525dc6f14b8559890b2f4c1c
commit: 05559f10ed797b79f7fa47313682c48919a2b111 usb: chipidea: add role switch 
class support
date:   11 months ago
:::::: branch date: 12 hours ago
:::::: commit date: 11 months ago
config: h8300-randconfig-m031-20200710 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.0

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

smatch warnings:
drivers//usb/chipidea/core.c:657 ci_usb_role_switch_set() error: double 
unlocked 'ci->lock' (orig line 638)

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=05559f10ed797b79f7fa47313682c48919a2b111
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git remote update linus
git checkout 05559f10ed797b79f7fa47313682c48919a2b111
vim +657 drivers//usb/chipidea/core.c

05559f10ed797b Li Jun 2019-08-26  615  
05559f10ed797b Li Jun 2019-08-26  616  static int ci_usb_role_switch_set(struct 
device *dev, enum usb_role role)
05559f10ed797b Li Jun 2019-08-26  617  {
05559f10ed797b Li Jun 2019-08-26  618   struct ci_hdrc *ci = 
dev_get_drvdata(dev);
05559f10ed797b Li Jun 2019-08-26  619   struct ci_hdrc_cable *cable = NULL;
05559f10ed797b Li Jun 2019-08-26  620   enum usb_role current_role = 
ci_role_to_usb_role(ci);
05559f10ed797b Li Jun 2019-08-26  621   unsigned long flags;
05559f10ed797b Li Jun 2019-08-26  622  
05559f10ed797b Li Jun 2019-08-26  623   if (current_role == role)
05559f10ed797b Li Jun 2019-08-26  624           return 0;
05559f10ed797b Li Jun 2019-08-26  625  
05559f10ed797b Li Jun 2019-08-26  626   pm_runtime_get_sync(ci->dev);
05559f10ed797b Li Jun 2019-08-26  627   /* Stop current role */
05559f10ed797b Li Jun 2019-08-26  628   spin_lock_irqsave(&ci->lock, flags);
05559f10ed797b Li Jun 2019-08-26  629   if (current_role == USB_ROLE_DEVICE)
05559f10ed797b Li Jun 2019-08-26  630           cable = 
&ci->platdata->vbus_extcon;
05559f10ed797b Li Jun 2019-08-26  631   else if (current_role == USB_ROLE_HOST)
05559f10ed797b Li Jun 2019-08-26  632           cable = 
&ci->platdata->id_extcon;
05559f10ed797b Li Jun 2019-08-26  633  
05559f10ed797b Li Jun 2019-08-26  634   if (cable) {
05559f10ed797b Li Jun 2019-08-26  635           cable->changed = true;
05559f10ed797b Li Jun 2019-08-26  636           cable->connected = false;
05559f10ed797b Li Jun 2019-08-26  637           ci_irq(ci->irq, ci);
05559f10ed797b Li Jun 2019-08-26 @638           
spin_unlock_irqrestore(&ci->lock, flags);
05559f10ed797b Li Jun 2019-08-26  639           if (ci->wq && role != 
USB_ROLE_NONE)
05559f10ed797b Li Jun 2019-08-26  640                   flush_workqueue(ci->wq);
05559f10ed797b Li Jun 2019-08-26  641           spin_lock_irqsave(&ci->lock, 
flags);
05559f10ed797b Li Jun 2019-08-26  642   }
05559f10ed797b Li Jun 2019-08-26  643  
05559f10ed797b Li Jun 2019-08-26  644   cable = NULL;
05559f10ed797b Li Jun 2019-08-26  645  
05559f10ed797b Li Jun 2019-08-26  646   /* Start target role */
05559f10ed797b Li Jun 2019-08-26  647   if (role == USB_ROLE_DEVICE)
05559f10ed797b Li Jun 2019-08-26  648           cable = 
&ci->platdata->vbus_extcon;
05559f10ed797b Li Jun 2019-08-26  649   else if (role == USB_ROLE_HOST)
05559f10ed797b Li Jun 2019-08-26  650           cable = 
&ci->platdata->id_extcon;
05559f10ed797b Li Jun 2019-08-26  651  
05559f10ed797b Li Jun 2019-08-26  652   if (cable) {
05559f10ed797b Li Jun 2019-08-26  653           cable->changed = true;
05559f10ed797b Li Jun 2019-08-26  654           cable->connected = true;
05559f10ed797b Li Jun 2019-08-26  655           ci_irq(ci->irq, ci);
05559f10ed797b Li Jun 2019-08-26  656   }
05559f10ed797b Li Jun 2019-08-26 @657   spin_unlock_irqrestore(&ci->lock, 
flags);
05559f10ed797b Li Jun 2019-08-26  658   pm_runtime_put_sync(ci->dev);
05559f10ed797b Li Jun 2019-08-26  659  
05559f10ed797b Li Jun 2019-08-26  660   return 0;
05559f10ed797b Li Jun 2019-08-26  661  }
05559f10ed797b Li Jun 2019-08-26  662  

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to