All of lore.kernel.org
 help / color / mirror / Atom feed
* [sashal-linux-stable:queue-4.9 26/29] drivers/usb/usbip/vudc_sysfs.c:238 store_sockfd() warn: inconsistent returns '&udc->ud.sysfs_lock'.
@ 2021-04-28 10:50 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2021-04-28 10:50 UTC (permalink / raw)
  To: kbuild

[-- 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 --]

^ permalink raw reply	[flat|nested] 3+ messages in thread
* [sashal-linux-stable:queue-4.9 26/29] drivers/usb/usbip/vudc_sysfs.c:238 store_sockfd() warn: inconsistent returns '&udc->ud.sysfs_lock'.
@ 2021-04-25 19:07 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2021-04-25 19:07 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: Sasha Levin <sashal@kernel.org>

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
:::::: branch date: 4 hours ago
:::::: commit date: 4 hours ago
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

ea6873a45a22f3 Igor Kotrasinski 2016-03-08  105  
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;
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;
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  }
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  240  static DEVICE_ATTR(usbip_sockfd, S_IWUSR, NULL, store_sockfd);
ea6873a45a22f3 Igor Kotrasinski 2016-03-08  241  

:::::: The code at line 238 was first introduced by commit
:::::: ea6873a45a22f35c8ab0f9c025df6a6c6dd532f3 usbip: vudc: Add SysFS infrastructure for VUDC

:::::: TO: Igor Kotrasinski <i.kotrasinsk@samsung.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
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 --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-04-28 10:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2021-04-28 10:50 ` Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2021-04-25 19:07 kernel test robot

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.