From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/scsi/sg.c:940 sg_ioctl_common() error: double locked 'sfp->rq_list_lock' (orig line 940)
Date: Sat, 24 Oct 2020 03:16:05 +0800 [thread overview]
Message-ID: <202010240347.KIMtFIsk-lkp@intel.com> (raw)
[-- 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 --]
reply other threads:[~2020-10-23 19:16 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202010240347.KIMtFIsk-lkp@intel.com \
--to=lkp@intel.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.