All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/scsi/sg.c:940 sg_ioctl_common() error: double locked 'sfp->rq_list_lock' (orig line 940)
@ 2020-10-23 19:16 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-10-23 19:16 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Eric Farman <farman@linux.ibm.com>
CC: Vasily Gorbik <gor@linux.ibm.com>
CC: Heiko Carstens <hca@linux.ibm.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f9893351acaecf0a414baf9942b48d5bb5c688c6
commit: 114b9df419bf5db097b322ebb03fcf2f502f9380 s390: fix GENERIC_LOCKBREAK dependency typo in Kconfig
date:   7 weeks ago
:::::: branch date: 23 hours ago
:::::: commit date: 7 weeks ago
config: s390-randconfig-m031-20201023 (attached as .config)
compiler: s390-linux-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>

New smatch warnings:
drivers/scsi/sg.c:940 sg_ioctl_common() error: double locked 'sfp->rq_list_lock' (orig line 940)
drivers/scsi/sg.c:940 sg_ioctl_common() error: double locked 'sfp->rq_list_lock' (orig line 940)
net/smc/smc_core.c:603 smc_switch_conns() warn: inconsistent returns 'bottom_half'.
net/tipc/node.c:486 tipc_node_create() error: double locked 'n->lock' (orig line 466)

Old smatch warnings:
drivers/scsi/sg.c:484 sg_read() error: we previously assumed 'srp' could be null (see line 470)
drivers/scsi/sg.c:944 sg_ioctl_common() error: double locked 'sfp->rq_list_lock' (orig line 940)
net/tipc/node.c:1699 tipc_node_xmit() warn: inconsistent returns 'bottom_half'.

vim +940 drivers/scsi/sg.c

fd6c3d5accea8e Arnd Bergmann     2018-08-24   916  
37b9d1e0017b2d Jörn Engel        2012-04-12   917  static long
d320a9551e394c Arnd Bergmann     2019-03-15   918  sg_ioctl_common(struct file *filp, Sg_device *sdp, Sg_fd *sfp,
d320a9551e394c Arnd Bergmann     2019-03-15   919  		unsigned int cmd_in, void __user *p)
^1da177e4c3f41 Linus Torvalds    2005-04-16   920  {
^1da177e4c3f41 Linus Torvalds    2005-04-16   921  	int __user *ip = p;
176aa9d6ee2db5 Christoph Hellwig 2014-10-11   922  	int result, val, read_only;
^1da177e4c3f41 Linus Torvalds    2005-04-16   923  	Sg_request *srp;
^1da177e4c3f41 Linus Torvalds    2005-04-16   924  	unsigned long iflags;
^1da177e4c3f41 Linus Torvalds    2005-04-16   925  
95e159d6dd808b Hannes Reinecke   2014-06-25   926  	SCSI_LOG_TIMEOUT(3, sg_printk(KERN_INFO, sdp,
95e159d6dd808b Hannes Reinecke   2014-06-25   927  				   "sg_ioctl: cmd=0x%x\n", (int) cmd_in));
^1da177e4c3f41 Linus Torvalds    2005-04-16   928  	read_only = (O_RDWR != (filp->f_flags & O_ACCMODE));
^1da177e4c3f41 Linus Torvalds    2005-04-16   929  
^1da177e4c3f41 Linus Torvalds    2005-04-16   930  	switch (cmd_in) {
^1da177e4c3f41 Linus Torvalds    2005-04-16   931  	case SG_IO:
cc833acbee9db5 Douglas Gilbert   2014-06-25   932  		if (atomic_read(&sdp->detaching))
^1da177e4c3f41 Linus Torvalds    2005-04-16   933  			return -ENODEV;
^1da177e4c3f41 Linus Torvalds    2005-04-16   934  		if (!scsi_block_when_processing_errors(sdp->device))
^1da177e4c3f41 Linus Torvalds    2005-04-16   935  			return -ENXIO;
dddbf8d908e89a Jörn Engel        2012-04-12   936  		result = sg_new_write(sfp, filp, p, SZ_SG_IO_HDR,
dddbf8d908e89a Jörn Engel        2012-04-12   937  				 1, read_only, 1, &srp);
^1da177e4c3f41 Linus Torvalds    2005-04-16   938  		if (result < 0)
^1da177e4c3f41 Linus Torvalds    2005-04-16   939  			return result;
3f0c6aba0b65a6 Jörn Engel        2012-04-12  @940  		result = wait_event_interruptible(sfp->read_wait,
cc833acbee9db5 Douglas Gilbert   2014-06-25   941  			(srp_done(sfp, srp) || atomic_read(&sdp->detaching)));
cc833acbee9db5 Douglas Gilbert   2014-06-25   942  		if (atomic_read(&sdp->detaching))
^1da177e4c3f41 Linus Torvalds    2005-04-16   943  			return -ENODEV;
a2dd3b4cea3357 Tony Battersby    2009-01-20   944  		write_lock_irq(&sfp->rq_list_lock);
a2dd3b4cea3357 Tony Battersby    2009-01-20   945  		if (srp->done) {
a2dd3b4cea3357 Tony Battersby    2009-01-20   946  			srp->done = 2;
a2dd3b4cea3357 Tony Battersby    2009-01-20   947  			write_unlock_irq(&sfp->rq_list_lock);
794c10fa0fa4d1 Jörn Engel        2012-04-12   948  			result = sg_new_read(sfp, p, SZ_SG_IO_HDR, srp);
794c10fa0fa4d1 Jörn Engel        2012-04-12   949  			return (result < 0) ? result : 0;
a2dd3b4cea3357 Tony Battersby    2009-01-20   950  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16   951  		srp->orphan = 1;
a2dd3b4cea3357 Tony Battersby    2009-01-20   952  		write_unlock_irq(&sfp->rq_list_lock);
^1da177e4c3f41 Linus Torvalds    2005-04-16   953  		return result;	/* -ERESTARTSYS because signal hit process */
^1da177e4c3f41 Linus Torvalds    2005-04-16   954  	case SG_SET_TIMEOUT:
^1da177e4c3f41 Linus Torvalds    2005-04-16   955  		result = get_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16   956  		if (result)
^1da177e4c3f41 Linus Torvalds    2005-04-16   957  			return result;
^1da177e4c3f41 Linus Torvalds    2005-04-16   958  		if (val < 0)
^1da177e4c3f41 Linus Torvalds    2005-04-16   959  			return -EIO;
f8630bd7e2185d Paul Burton       2016-08-19   960  		if (val >= mult_frac((s64)INT_MAX, USER_HZ, HZ))
f8630bd7e2185d Paul Burton       2016-08-19   961  			val = min_t(s64, mult_frac((s64)INT_MAX, USER_HZ, HZ),
b9b6e80ad3b117 Paul Burton       2016-08-19   962  				    INT_MAX);
^1da177e4c3f41 Linus Torvalds    2005-04-16   963  		sfp->timeout_user = val;
f8630bd7e2185d Paul Burton       2016-08-19   964  		sfp->timeout = mult_frac(val, HZ, USER_HZ);
^1da177e4c3f41 Linus Torvalds    2005-04-16   965  
^1da177e4c3f41 Linus Torvalds    2005-04-16   966  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16   967  	case SG_GET_TIMEOUT:	/* N.B. User receives timeout as return value */
^1da177e4c3f41 Linus Torvalds    2005-04-16   968  				/* strange ..., for backward compatibility */
^1da177e4c3f41 Linus Torvalds    2005-04-16   969  		return sfp->timeout_user;
^1da177e4c3f41 Linus Torvalds    2005-04-16   970  	case SG_SET_FORCE_LOW_DMA:
745dfa0d8ec26b Hannes Reinecke   2017-04-07   971  		/*
745dfa0d8ec26b Hannes Reinecke   2017-04-07   972  		 * N.B. This ioctl never worked properly, but failed to
745dfa0d8ec26b Hannes Reinecke   2017-04-07   973  		 * return an error value. So returning '0' to keep compability
745dfa0d8ec26b Hannes Reinecke   2017-04-07   974  		 * with legacy applications.
745dfa0d8ec26b Hannes Reinecke   2017-04-07   975  		 */
^1da177e4c3f41 Linus Torvalds    2005-04-16   976  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16   977  	case SG_GET_LOW_DMA:
745dfa0d8ec26b Hannes Reinecke   2017-04-07   978  		return put_user((int) sdp->device->host->unchecked_isa_dma, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16   979  	case SG_GET_SCSI_ID:
a16a47416d3f4f Al Viro           2019-10-17   980  		{
a16a47416d3f4f Al Viro           2019-10-17   981  			sg_scsi_id_t v;
^1da177e4c3f41 Linus Torvalds    2005-04-16   982  
cc833acbee9db5 Douglas Gilbert   2014-06-25   983  			if (atomic_read(&sdp->detaching))
^1da177e4c3f41 Linus Torvalds    2005-04-16   984  				return -ENODEV;
a16a47416d3f4f Al Viro           2019-10-17   985  			memset(&v, 0, sizeof(v));
a16a47416d3f4f Al Viro           2019-10-17   986  			v.host_no = sdp->device->host->host_no;
a16a47416d3f4f Al Viro           2019-10-17   987  			v.channel = sdp->device->channel;
a16a47416d3f4f Al Viro           2019-10-17   988  			v.scsi_id = sdp->device->id;
a16a47416d3f4f Al Viro           2019-10-17   989  			v.lun = sdp->device->lun;
a16a47416d3f4f Al Viro           2019-10-17   990  			v.scsi_type = sdp->device->type;
a16a47416d3f4f Al Viro           2019-10-17   991  			v.h_cmd_per_lun = sdp->device->host->cmd_per_lun;
a16a47416d3f4f Al Viro           2019-10-17   992  			v.d_queue_depth = sdp->device->queue_depth;
a16a47416d3f4f Al Viro           2019-10-17   993  			if (copy_to_user(p, &v, sizeof(sg_scsi_id_t)))
a16a47416d3f4f Al Viro           2019-10-17   994  				return -EFAULT;
^1da177e4c3f41 Linus Torvalds    2005-04-16   995  			return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16   996  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16   997  	case SG_SET_FORCE_PACK_ID:
^1da177e4c3f41 Linus Torvalds    2005-04-16   998  		result = get_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16   999  		if (result)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1000  			return result;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1001  		sfp->force_packid = val ? 1 : 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1002  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1003  	case SG_GET_PACK_ID:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1004  		read_lock_irqsave(&sfp->rq_list_lock, iflags);
109bade9c625c8 Hannes Reinecke   2017-04-07  1005  		list_for_each_entry(srp, &sfp->rq_list, entry) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1006  			if ((1 == srp->done) && (!srp->sg_io_owned)) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1007  				read_unlock_irqrestore(&sfp->rq_list_lock,
^1da177e4c3f41 Linus Torvalds    2005-04-16  1008  						       iflags);
a16a47416d3f4f Al Viro           2019-10-17  1009  				return put_user(srp->header.pack_id, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1010  			}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1011  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1012  		read_unlock_irqrestore(&sfp->rq_list_lock, iflags);
a16a47416d3f4f Al Viro           2019-10-17  1013  		return put_user(-1, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1014  	case SG_GET_NUM_WAITING:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1015  		read_lock_irqsave(&sfp->rq_list_lock, iflags);
109bade9c625c8 Hannes Reinecke   2017-04-07  1016  		val = 0;
109bade9c625c8 Hannes Reinecke   2017-04-07  1017  		list_for_each_entry(srp, &sfp->rq_list, entry) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  1018  			if ((1 == srp->done) && (!srp->sg_io_owned))
^1da177e4c3f41 Linus Torvalds    2005-04-16  1019  				++val;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1020  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1021  		read_unlock_irqrestore(&sfp->rq_list_lock, iflags);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1022  		return put_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1023  	case SG_GET_SG_TABLESIZE:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1024  		return put_user(sdp->sg_tablesize, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1025  	case SG_SET_RESERVED_SIZE:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1026  		result = get_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1027  		if (result)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1028  			return result;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1029                  if (val < 0)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1030                          return -EINVAL;
44ec95425c1d9d Alan Stern        2007-02-20  1031  		val = min_t(int, val,
46f69e6a6bbbf3 Akinobu Mita      2014-06-02  1032  			    max_sectors_bytes(sdp->device->request_queue));
1bc0eb0446158c Hannes Reinecke   2017-04-07  1033  		mutex_lock(&sfp->f_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1034  		if (val != sfp->reserve.bufflen) {
1bc0eb0446158c Hannes Reinecke   2017-04-07  1035  			if (sfp->mmap_called ||
1bc0eb0446158c Hannes Reinecke   2017-04-07  1036  			    sfp->res_in_use) {
1bc0eb0446158c Hannes Reinecke   2017-04-07  1037  				mutex_unlock(&sfp->f_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1038  				return -EBUSY;
1bc0eb0446158c Hannes Reinecke   2017-04-07  1039  			}
1bc0eb0446158c Hannes Reinecke   2017-04-07  1040  
95e159d6dd808b Hannes Reinecke   2014-06-25  1041  			sg_remove_scat(sfp, &sfp->reserve);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1042  			sg_build_reserve(sfp, val);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1043  		}
1bc0eb0446158c Hannes Reinecke   2017-04-07  1044  		mutex_unlock(&sfp->f_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1045  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1046  	case SG_GET_RESERVED_SIZE:
44ec95425c1d9d Alan Stern        2007-02-20  1047  		val = min_t(int, sfp->reserve.bufflen,
46f69e6a6bbbf3 Akinobu Mita      2014-06-02  1048  			    max_sectors_bytes(sdp->device->request_queue));
^1da177e4c3f41 Linus Torvalds    2005-04-16  1049  		return put_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1050  	case SG_SET_COMMAND_Q:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1051  		result = get_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1052  		if (result)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1053  			return result;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1054  		sfp->cmd_q = val ? 1 : 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1055  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1056  	case SG_GET_COMMAND_Q:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1057  		return put_user((int) sfp->cmd_q, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1058  	case SG_SET_KEEP_ORPHAN:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1059  		result = get_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1060  		if (result)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1061  			return result;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1062  		sfp->keep_orphan = val;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1063  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1064  	case SG_GET_KEEP_ORPHAN:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1065  		return put_user((int) sfp->keep_orphan, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1066  	case SG_NEXT_CMD_LEN:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1067  		result = get_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1068  		if (result)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1069  			return result;
bf33f87dd04c37 peter chang       2017-02-15  1070  		if (val > SG_MAX_CDB_SIZE)
bf33f87dd04c37 peter chang       2017-02-15  1071  			return -ENOMEM;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1072  		sfp->next_cmd_len = (val > 0) ? val : 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1073  		return 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1074  	case SG_GET_VERSION_NUM:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1075  		return put_user(sg_version_num, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1076  	case SG_GET_ACCESS_COUNT:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1077  		/* faked - we don't have a real access count anymore */
^1da177e4c3f41 Linus Torvalds    2005-04-16  1078  		val = (sdp->device ? 1 : 0);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1079  		return put_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1080  	case SG_GET_REQUEST_TABLE:
fd6c3d5accea8e Arnd Bergmann     2018-08-24  1081  		{
cb59e840838193 Douglas Gilbert   2005-04-02  1082  			sg_req_info_t *rinfo;
cb59e840838193 Douglas Gilbert   2005-04-02  1083  
6396bb221514d2 Kees Cook         2018-06-12  1084  			rinfo = kcalloc(SG_MAX_QUEUE, SZ_SG_REQ_INFO,
cb59e840838193 Douglas Gilbert   2005-04-02  1085  					GFP_KERNEL);
cb59e840838193 Douglas Gilbert   2005-04-02  1086  			if (!rinfo)
cb59e840838193 Douglas Gilbert   2005-04-02  1087  				return -ENOMEM;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1088  			read_lock_irqsave(&sfp->rq_list_lock, iflags);
4759df905a474d Hannes Reinecke   2017-09-15  1089  			sg_fill_request_table(sfp, rinfo);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1090  			read_unlock_irqrestore(&sfp->rq_list_lock, iflags);
fd6c3d5accea8e Arnd Bergmann     2018-08-24  1091  	#ifdef CONFIG_COMPAT
fd6c3d5accea8e Arnd Bergmann     2018-08-24  1092  			if (in_compat_syscall())
fd6c3d5accea8e Arnd Bergmann     2018-08-24  1093  				result = put_compat_request_table(p, rinfo);
fd6c3d5accea8e Arnd Bergmann     2018-08-24  1094  			else
fd6c3d5accea8e Arnd Bergmann     2018-08-24  1095  	#endif
fd6c3d5accea8e Arnd Bergmann     2018-08-24  1096  				result = copy_to_user(p, rinfo,
cb59e840838193 Douglas Gilbert   2005-04-02  1097  						      SZ_SG_REQ_INFO * SG_MAX_QUEUE);
cb59e840838193 Douglas Gilbert   2005-04-02  1098  			result = result ? -EFAULT : 0;
cb59e840838193 Douglas Gilbert   2005-04-02  1099  			kfree(rinfo);
cb59e840838193 Douglas Gilbert   2005-04-02  1100  			return result;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1101  		}
^1da177e4c3f41 Linus Torvalds    2005-04-16  1102  	case SG_EMULATED_HOST:
cc833acbee9db5 Douglas Gilbert   2014-06-25  1103  		if (atomic_read(&sdp->detaching))
^1da177e4c3f41 Linus Torvalds    2005-04-16  1104  			return -ENODEV;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1105  		return put_user(sdp->device->host->hostt->emulated, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1106  	case SCSI_IOCTL_SEND_COMMAND:
cc833acbee9db5 Douglas Gilbert   2014-06-25  1107  		if (atomic_read(&sdp->detaching))
^1da177e4c3f41 Linus Torvalds    2005-04-16  1108  			return -ENODEV;
e915e872ed921d Al Viro           2008-09-02  1109  		return sg_scsi_ioctl(sdp->device->request_queue, NULL, filp->f_mode, p);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1110  	case SG_SET_DEBUG:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1111  		result = get_user(val, ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  1112  		if (result)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1113  			return result;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1114  		sdp->sgdebug = (char) val;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1115  		return 0;
44ec95425c1d9d Alan Stern        2007-02-20  1116  	case BLKSECTGET:
46f69e6a6bbbf3 Akinobu Mita      2014-06-02  1117  		return put_user(max_sectors_bytes(sdp->device->request_queue),
44ec95425c1d9d Alan Stern        2007-02-20  1118  				ip);
6da127ad0918f9 Christof Schmitt  2008-01-11  1119  	case BLKTRACESETUP:
6da127ad0918f9 Christof Schmitt  2008-01-11  1120  		return blk_trace_setup(sdp->device->request_queue,
6da127ad0918f9 Christof Schmitt  2008-01-11  1121  				       sdp->disk->disk_name,
76e3a19d0691bb Martin Peschke    2009-01-30  1122  				       MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
7475c8ae1b7bfc Bart Van Assche   2017-08-25  1123  				       NULL, p);
6da127ad0918f9 Christof Schmitt  2008-01-11  1124  	case BLKTRACESTART:
6da127ad0918f9 Christof Schmitt  2008-01-11  1125  		return blk_trace_startstop(sdp->device->request_queue, 1);
6da127ad0918f9 Christof Schmitt  2008-01-11  1126  	case BLKTRACESTOP:
6da127ad0918f9 Christof Schmitt  2008-01-11  1127  		return blk_trace_startstop(sdp->device->request_queue, 0);
6da127ad0918f9 Christof Schmitt  2008-01-11  1128  	case BLKTRACETEARDOWN:
6da127ad0918f9 Christof Schmitt  2008-01-11  1129  		return blk_trace_remove(sdp->device->request_queue);
906d15fbd23c12 Christoph Hellwig 2014-10-11  1130  	case SCSI_IOCTL_GET_IDLUN:
906d15fbd23c12 Christoph Hellwig 2014-10-11  1131  	case SCSI_IOCTL_GET_BUS_NUMBER:
906d15fbd23c12 Christoph Hellwig 2014-10-11  1132  	case SCSI_IOCTL_PROBE_HOST:
906d15fbd23c12 Christoph Hellwig 2014-10-11  1133  	case SG_GET_TRANSFORM:
906d15fbd23c12 Christoph Hellwig 2014-10-11  1134  	case SG_SCSI_RESET:
906d15fbd23c12 Christoph Hellwig 2014-10-11  1135  		if (atomic_read(&sdp->detaching))
906d15fbd23c12 Christoph Hellwig 2014-10-11  1136  			return -ENODEV;
906d15fbd23c12 Christoph Hellwig 2014-10-11  1137  		break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1138  	default:
^1da177e4c3f41 Linus Torvalds    2005-04-16  1139  		if (read_only)
^1da177e4c3f41 Linus Torvalds    2005-04-16  1140  			return -EPERM;	/* don't know so take safe approach */
906d15fbd23c12 Christoph Hellwig 2014-10-11  1141  		break;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1142  	}
906d15fbd23c12 Christoph Hellwig 2014-10-11  1143  
906d15fbd23c12 Christoph Hellwig 2014-10-11  1144  	result = scsi_ioctl_block_when_processing_errors(sdp->device,
906d15fbd23c12 Christoph Hellwig 2014-10-11  1145  			cmd_in, filp->f_flags & O_NDELAY);
906d15fbd23c12 Christoph Hellwig 2014-10-11  1146  	if (result)
906d15fbd23c12 Christoph Hellwig 2014-10-11  1147  		return result;
d320a9551e394c Arnd Bergmann     2019-03-15  1148  
d320a9551e394c Arnd Bergmann     2019-03-15  1149  	return -ENOIOCTLCMD;
^1da177e4c3f41 Linus Torvalds    2005-04-16  1150  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  1151  

:::::: The code at line 940 was first introduced by commit
:::::: 3f0c6aba0b65a68013c1e0db1b015f02e6ec24be [SCSI] sg: use wait_event_interruptible()

:::::: TO: Jörn Engel <joern@logfs.org>
:::::: CC: James Bottomley <JBottomley@Parallels.com>

---
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: 37698 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-10-23 19:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-23 19:16 drivers/scsi/sg.c:940 sg_ioctl_common() error: double locked 'sfp->rq_list_lock' (orig line 940) 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.