All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org
Subject: [sashal-linux-stable:queue-4.9 26/29] drivers/usb/usbip/vudc_sysfs.c:238 store_sockfd() warn: inconsistent returns '&udc->ud.sysfs_lock'.
Date: Wed, 28 Apr 2021 13:50:01 +0300	[thread overview]
Message-ID: <20210428105001.GU1981@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 10499 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-4.9
head:   7edb2da8d62438a92699cb11688ad9f372fc32fc
commit: 117246f8e1e52f36549f8e420418f4673d4ddca2 [26/29] usbip: vudc synchronize sysfs code paths
config: arc-randconfig-m031-20210425 (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0

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

smatch warnings:
drivers/usb/usbip/vudc_sysfs.c:238 store_sockfd() warn: inconsistent returns '&udc->ud.sysfs_lock'.

vim +238 drivers/usb/usbip/vudc_sysfs.c

fe9e15a30be666 Shuah Khan       2021-03-07  106  static ssize_t store_sockfd(struct device *dev,
fe9e15a30be666 Shuah Khan       2021-03-07  107  				 struct device_attribute *attr,
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  108  				 const char *in, size_t count)
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  109  {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  110  	struct vudc *udc = (struct vudc *) dev_get_drvdata(dev);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  111  	int rv;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  112  	int sockfd = 0;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  113  	int err;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  114  	struct socket *socket;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  115  	unsigned long flags;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  116  	int ret;
fe9e15a30be666 Shuah Khan       2021-03-07  117  	struct task_struct *tcp_rx = NULL;
fe9e15a30be666 Shuah Khan       2021-03-07  118  	struct task_struct *tcp_tx = NULL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  119  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  120  	rv = kstrtoint(in, 0, &sockfd);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  121  	if (rv != 0)
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  122  		return -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  123  
b7661e9af851da Colin Ian King   2018-02-22  124  	if (!udc) {
b7661e9af851da Colin Ian King   2018-02-22  125  		dev_err(dev, "no device");
b7661e9af851da Colin Ian King   2018-02-22  126  		return -ENODEV;
b7661e9af851da Colin Ian King   2018-02-22  127  	}
117246f8e1e52f Shuah Khan       2021-04-16  128  	mutex_lock(&udc->ud.sysfs_lock);
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ea6873a45a22f3 Igor Kotrasinski 2016-03-08  129  	spin_lock_irqsave(&udc->lock, flags);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  130  	/* Don't export what we don't have */
b7661e9af851da Colin Ian King   2018-02-22  131  	if (!udc->driver || !udc->pullup) {
b7661e9af851da Colin Ian King   2018-02-22  132  		dev_err(dev, "gadget not bound");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  133  		ret = -ENODEV;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  134  		goto unlock;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  135  	}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  136  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  137  	if (sockfd != -1) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  138  		if (udc->connected) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  139  			dev_err(dev, "Device already connected");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  140  			ret = -EBUSY;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  141  			goto unlock;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  142  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  143  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  144  		spin_lock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  145  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  146  		if (udc->ud.status != SDEV_ST_AVAILABLE) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  147  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  148  			goto unlock_ud;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  149  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  150  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  151  		socket = sockfd_lookup(sockfd, &err);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  152  		if (!socket) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  153  			dev_err(dev, "failed to lookup sock");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  154  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  155  			goto unlock_ud;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  156  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  157  
d5708a353836ac Shuah Khan       2021-03-07  158  		if (socket->type != SOCK_STREAM) {
d5708a353836ac Shuah Khan       2021-03-07  159  			dev_err(dev, "Expecting SOCK_STREAM - found %d",
d5708a353836ac Shuah Khan       2021-03-07  160  				socket->type);
d5708a353836ac Shuah Khan       2021-03-07  161  			ret = -EINVAL;
d5708a353836ac Shuah Khan       2021-03-07  162  			goto sock_err;
d5708a353836ac Shuah Khan       2021-03-07  163  		}
d5708a353836ac Shuah Khan       2021-03-07  164  
fe9e15a30be666 Shuah Khan       2021-03-07  165  		/* unlock and create threads and get tasks */
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  166  		spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  167  		spin_unlock_irqrestore(&udc->lock, flags);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  168  
fe9e15a30be666 Shuah Khan       2021-03-07  169  		tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx");
fe9e15a30be666 Shuah Khan       2021-03-07  170  		if (IS_ERR(tcp_rx)) {
fe9e15a30be666 Shuah Khan       2021-03-07  171  			sockfd_put(socket);
fe9e15a30be666 Shuah Khan       2021-03-07  172  			return -EINVAL;

mutex_unlock(&udc->ud.sysfs_lock);

fe9e15a30be666 Shuah Khan       2021-03-07  173  		}
fe9e15a30be666 Shuah Khan       2021-03-07  174  		tcp_tx = kthread_create(&v_tx_loop, &udc->ud, "vudc_tx");
fe9e15a30be666 Shuah Khan       2021-03-07  175  		if (IS_ERR(tcp_tx)) {
fe9e15a30be666 Shuah Khan       2021-03-07  176  			kthread_stop(tcp_rx);
fe9e15a30be666 Shuah Khan       2021-03-07  177  			sockfd_put(socket);
fe9e15a30be666 Shuah Khan       2021-03-07  178  			return -EINVAL;

mutex_unlock(&udc->ud.sysfs_lock);

fe9e15a30be666 Shuah Khan       2021-03-07  179  		}
fe9e15a30be666 Shuah Khan       2021-03-07  180  
fe9e15a30be666 Shuah Khan       2021-03-07  181  		/* get task structs now */
fe9e15a30be666 Shuah Khan       2021-03-07  182  		get_task_struct(tcp_rx);
fe9e15a30be666 Shuah Khan       2021-03-07  183  		get_task_struct(tcp_tx);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  184  
fe9e15a30be666 Shuah Khan       2021-03-07  185  		/* lock and update udc->ud state */
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  186  		spin_lock_irqsave(&udc->lock, flags);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  187  		spin_lock_irq(&udc->ud.lock);
fe9e15a30be666 Shuah Khan       2021-03-07  188  
fe9e15a30be666 Shuah Khan       2021-03-07  189  		udc->ud.tcp_socket = socket;
fe9e15a30be666 Shuah Khan       2021-03-07  190  		udc->ud.tcp_rx = tcp_rx;
e957ba13608a1a Colin Ian King   2021-03-11  191  		udc->ud.tcp_tx = tcp_tx;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  192  		udc->ud.status = SDEV_ST_USED;
fe9e15a30be666 Shuah Khan       2021-03-07  193  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  194  		spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  195  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  196  		do_gettimeofday(&udc->start_time);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  197  		v_start_timer(udc);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  198  		udc->connected = 1;
fe9e15a30be666 Shuah Khan       2021-03-07  199  
fe9e15a30be666 Shuah Khan       2021-03-07  200  		spin_unlock_irqrestore(&udc->lock, flags);
fe9e15a30be666 Shuah Khan       2021-03-07  201  
fe9e15a30be666 Shuah Khan       2021-03-07  202  		wake_up_process(udc->ud.tcp_rx);
fe9e15a30be666 Shuah Khan       2021-03-07  203  		wake_up_process(udc->ud.tcp_tx);
117246f8e1e52f Shuah Khan       2021-04-16  204  
117246f8e1e52f Shuah Khan       2021-04-16  205  		mutex_unlock(&udc->ud.sysfs_lock);
fe9e15a30be666 Shuah Khan       2021-03-07  206  		return count;
fe9e15a30be666 Shuah Khan       2021-03-07  207  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  208  	} else {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  209  		if (!udc->connected) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  210  			dev_err(dev, "Device not connected");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  211  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  212  			goto unlock;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  213  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  214  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  215  		spin_lock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  216  		if (udc->ud.status != SDEV_ST_USED) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  217  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  218  			goto unlock_ud;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  219  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  220  		spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  221  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  222  		usbip_event_add(&udc->ud, VUDC_EVENT_DOWN);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  223  	}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  224  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  225  	spin_unlock_irqrestore(&udc->lock, flags);
117246f8e1e52f Shuah Khan       2021-04-16  226  	mutex_unlock(&udc->ud.sysfs_lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  227  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  228  	return count;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  229  
d5708a353836ac Shuah Khan       2021-03-07  230  sock_err:
d5708a353836ac Shuah Khan       2021-03-07  231  	sockfd_put(socket);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  232  unlock_ud:
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  233  	spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  234  unlock:
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  235  	spin_unlock_irqrestore(&udc->lock, flags);
117246f8e1e52f Shuah Khan       2021-04-16  236  	mutex_unlock(&udc->ud.sysfs_lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  237  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08 @238  	return ret;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  239  }

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 20828 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild-all@lists.01.org
Subject: [sashal-linux-stable:queue-4.9 26/29] drivers/usb/usbip/vudc_sysfs.c:238 store_sockfd() warn: inconsistent returns '&udc->ud.sysfs_lock'.
Date: Wed, 28 Apr 2021 13:50:01 +0300	[thread overview]
Message-ID: <20210428105001.GU1981@kadam> (raw)

[-- Attachment #1: Type: text/plain, Size: 10499 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-4.9
head:   7edb2da8d62438a92699cb11688ad9f372fc32fc
commit: 117246f8e1e52f36549f8e420418f4673d4ddca2 [26/29] usbip: vudc synchronize sysfs code paths
config: arc-randconfig-m031-20210425 (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0

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

smatch warnings:
drivers/usb/usbip/vudc_sysfs.c:238 store_sockfd() warn: inconsistent returns '&udc->ud.sysfs_lock'.

vim +238 drivers/usb/usbip/vudc_sysfs.c

fe9e15a30be666 Shuah Khan       2021-03-07  106  static ssize_t store_sockfd(struct device *dev,
fe9e15a30be666 Shuah Khan       2021-03-07  107  				 struct device_attribute *attr,
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  108  				 const char *in, size_t count)
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  109  {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  110  	struct vudc *udc = (struct vudc *) dev_get_drvdata(dev);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  111  	int rv;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  112  	int sockfd = 0;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  113  	int err;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  114  	struct socket *socket;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  115  	unsigned long flags;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  116  	int ret;
fe9e15a30be666 Shuah Khan       2021-03-07  117  	struct task_struct *tcp_rx = NULL;
fe9e15a30be666 Shuah Khan       2021-03-07  118  	struct task_struct *tcp_tx = NULL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  119  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  120  	rv = kstrtoint(in, 0, &sockfd);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  121  	if (rv != 0)
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  122  		return -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  123  
b7661e9af851da Colin Ian King   2018-02-22  124  	if (!udc) {
b7661e9af851da Colin Ian King   2018-02-22  125  		dev_err(dev, "no device");
b7661e9af851da Colin Ian King   2018-02-22  126  		return -ENODEV;
b7661e9af851da Colin Ian King   2018-02-22  127  	}
117246f8e1e52f Shuah Khan       2021-04-16  128  	mutex_lock(&udc->ud.sysfs_lock);
                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ea6873a45a22f3 Igor Kotrasinski 2016-03-08  129  	spin_lock_irqsave(&udc->lock, flags);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  130  	/* Don't export what we don't have */
b7661e9af851da Colin Ian King   2018-02-22  131  	if (!udc->driver || !udc->pullup) {
b7661e9af851da Colin Ian King   2018-02-22  132  		dev_err(dev, "gadget not bound");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  133  		ret = -ENODEV;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  134  		goto unlock;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  135  	}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  136  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  137  	if (sockfd != -1) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  138  		if (udc->connected) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  139  			dev_err(dev, "Device already connected");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  140  			ret = -EBUSY;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  141  			goto unlock;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  142  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  143  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  144  		spin_lock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  145  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  146  		if (udc->ud.status != SDEV_ST_AVAILABLE) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  147  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  148  			goto unlock_ud;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  149  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  150  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  151  		socket = sockfd_lookup(sockfd, &err);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  152  		if (!socket) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  153  			dev_err(dev, "failed to lookup sock");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  154  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  155  			goto unlock_ud;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  156  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  157  
d5708a353836ac Shuah Khan       2021-03-07  158  		if (socket->type != SOCK_STREAM) {
d5708a353836ac Shuah Khan       2021-03-07  159  			dev_err(dev, "Expecting SOCK_STREAM - found %d",
d5708a353836ac Shuah Khan       2021-03-07  160  				socket->type);
d5708a353836ac Shuah Khan       2021-03-07  161  			ret = -EINVAL;
d5708a353836ac Shuah Khan       2021-03-07  162  			goto sock_err;
d5708a353836ac Shuah Khan       2021-03-07  163  		}
d5708a353836ac Shuah Khan       2021-03-07  164  
fe9e15a30be666 Shuah Khan       2021-03-07  165  		/* unlock and create threads and get tasks */
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  166  		spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  167  		spin_unlock_irqrestore(&udc->lock, flags);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  168  
fe9e15a30be666 Shuah Khan       2021-03-07  169  		tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx");
fe9e15a30be666 Shuah Khan       2021-03-07  170  		if (IS_ERR(tcp_rx)) {
fe9e15a30be666 Shuah Khan       2021-03-07  171  			sockfd_put(socket);
fe9e15a30be666 Shuah Khan       2021-03-07  172  			return -EINVAL;

mutex_unlock(&udc->ud.sysfs_lock);

fe9e15a30be666 Shuah Khan       2021-03-07  173  		}
fe9e15a30be666 Shuah Khan       2021-03-07  174  		tcp_tx = kthread_create(&v_tx_loop, &udc->ud, "vudc_tx");
fe9e15a30be666 Shuah Khan       2021-03-07  175  		if (IS_ERR(tcp_tx)) {
fe9e15a30be666 Shuah Khan       2021-03-07  176  			kthread_stop(tcp_rx);
fe9e15a30be666 Shuah Khan       2021-03-07  177  			sockfd_put(socket);
fe9e15a30be666 Shuah Khan       2021-03-07  178  			return -EINVAL;

mutex_unlock(&udc->ud.sysfs_lock);

fe9e15a30be666 Shuah Khan       2021-03-07  179  		}
fe9e15a30be666 Shuah Khan       2021-03-07  180  
fe9e15a30be666 Shuah Khan       2021-03-07  181  		/* get task structs now */
fe9e15a30be666 Shuah Khan       2021-03-07  182  		get_task_struct(tcp_rx);
fe9e15a30be666 Shuah Khan       2021-03-07  183  		get_task_struct(tcp_tx);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  184  
fe9e15a30be666 Shuah Khan       2021-03-07  185  		/* lock and update udc->ud state */
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  186  		spin_lock_irqsave(&udc->lock, flags);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  187  		spin_lock_irq(&udc->ud.lock);
fe9e15a30be666 Shuah Khan       2021-03-07  188  
fe9e15a30be666 Shuah Khan       2021-03-07  189  		udc->ud.tcp_socket = socket;
fe9e15a30be666 Shuah Khan       2021-03-07  190  		udc->ud.tcp_rx = tcp_rx;
e957ba13608a1a Colin Ian King   2021-03-11  191  		udc->ud.tcp_tx = tcp_tx;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  192  		udc->ud.status = SDEV_ST_USED;
fe9e15a30be666 Shuah Khan       2021-03-07  193  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  194  		spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  195  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  196  		do_gettimeofday(&udc->start_time);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  197  		v_start_timer(udc);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  198  		udc->connected = 1;
fe9e15a30be666 Shuah Khan       2021-03-07  199  
fe9e15a30be666 Shuah Khan       2021-03-07  200  		spin_unlock_irqrestore(&udc->lock, flags);
fe9e15a30be666 Shuah Khan       2021-03-07  201  
fe9e15a30be666 Shuah Khan       2021-03-07  202  		wake_up_process(udc->ud.tcp_rx);
fe9e15a30be666 Shuah Khan       2021-03-07  203  		wake_up_process(udc->ud.tcp_tx);
117246f8e1e52f Shuah Khan       2021-04-16  204  
117246f8e1e52f Shuah Khan       2021-04-16  205  		mutex_unlock(&udc->ud.sysfs_lock);
fe9e15a30be666 Shuah Khan       2021-03-07  206  		return count;
fe9e15a30be666 Shuah Khan       2021-03-07  207  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  208  	} else {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  209  		if (!udc->connected) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  210  			dev_err(dev, "Device not connected");
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  211  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  212  			goto unlock;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  213  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  214  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  215  		spin_lock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  216  		if (udc->ud.status != SDEV_ST_USED) {
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  217  			ret = -EINVAL;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  218  			goto unlock_ud;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  219  		}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  220  		spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  221  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  222  		usbip_event_add(&udc->ud, VUDC_EVENT_DOWN);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  223  	}
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  224  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  225  	spin_unlock_irqrestore(&udc->lock, flags);
117246f8e1e52f Shuah Khan       2021-04-16  226  	mutex_unlock(&udc->ud.sysfs_lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  227  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  228  	return count;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  229  
d5708a353836ac Shuah Khan       2021-03-07  230  sock_err:
d5708a353836ac Shuah Khan       2021-03-07  231  	sockfd_put(socket);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  232  unlock_ud:
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  233  	spin_unlock_irq(&udc->ud.lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  234  unlock:
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  235  	spin_unlock_irqrestore(&udc->lock, flags);
117246f8e1e52f Shuah Khan       2021-04-16  236  	mutex_unlock(&udc->ud.sysfs_lock);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  237  
ea6873a45a22f3 Igor Kotrasinski 2016-03-08 @238  	return ret;
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  239  }

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 20828 bytes --]

             reply	other threads:[~2021-04-28 10:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-28 10:50 Dan Carpenter [this message]
2021-04-28 10:50 ` [sashal-linux-stable:queue-4.9 26/29] drivers/usb/usbip/vudc_sysfs.c:238 store_sockfd() warn: inconsistent returns '&udc->ud.sysfs_lock' Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2021-04-25 19:07 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210428105001.GU1981@kadam \
    --to=dan.carpenter@oracle.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.