All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/scsi/sg.c:1145 sg_ioctl_common() warn: inconsistent returns 'sfp->rq_list_lock'.
@ 2020-08-18  3:54 ` kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-08-18  3:54 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: kbuild-all, linux-kernel, Ben Hutchings

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   06a4ec1d9dc652e17ee3ac2ceb6c7cf6c2b75cdd
commit: d320a9551e394cb2d842fd32d28e9805c2a18fbb compat_ioctl: scsi: move ioctl handling into drivers
date:   8 months ago
config: ia64-randconfig-m031-20200818 (attached as .config)
compiler: ia64-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>

New smatch warnings:
drivers/scsi/sg.c:1145 sg_ioctl_common() warn: inconsistent returns 'sfp->rq_list_lock'.

Old smatch warnings:
drivers/scsi/sg.c:1094 sg_ioctl_common() warn: inconsistent indenting

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d320a9551e394cb2d842fd32d28e9805c2a18fbb
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d320a9551e394cb2d842fd32d28e9805c2a18fbb
vim +1145 drivers/scsi/sg.c

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

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

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

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

* drivers/scsi/sg.c:1145 sg_ioctl_common() warn: inconsistent returns 'sfp->rq_list_lock'.
@ 2020-08-18  3:54 ` kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-08-18  3:54 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   06a4ec1d9dc652e17ee3ac2ceb6c7cf6c2b75cdd
commit: d320a9551e394cb2d842fd32d28e9805c2a18fbb compat_ioctl: scsi: move ioctl handling into drivers
date:   8 months ago
config: ia64-randconfig-m031-20200818 (attached as .config)
compiler: ia64-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>

New smatch warnings:
drivers/scsi/sg.c:1145 sg_ioctl_common() warn: inconsistent returns 'sfp->rq_list_lock'.

Old smatch warnings:
drivers/scsi/sg.c:1094 sg_ioctl_common() warn: inconsistent indenting

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d320a9551e394cb2d842fd32d28e9805c2a18fbb
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout d320a9551e394cb2d842fd32d28e9805c2a18fbb
vim +1145 drivers/scsi/sg.c

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

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

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

* drivers/scsi/sg.c:1145 sg_ioctl_common() warn: inconsistent returns 'sfp->rq_list_lock'.
@ 2020-11-09 11:41 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2020-11-09 11:41 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Arnd Bergmann <arnd@arndb.de>
CC: Ben Hutchings <bwh@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f8394f232b1eab649ce2df5c5f15b0e528c92091
commit: d320a9551e394cb2d842fd32d28e9805c2a18fbb compat_ioctl: scsi: move ioctl handling into drivers
date:   10 months ago
:::::: branch date: 12 hours ago
:::::: commit date: 10 months ago
config: ia64-randconfig-m031-20201109 (attached as .config)
compiler: ia64-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:1145 sg_ioctl_common() warn: inconsistent returns 'sfp->rq_list_lock'.

Old smatch warnings:
drivers/scsi/sg.c:1094 sg_ioctl_common() warn: inconsistent indenting

vim +1145 drivers/scsi/sg.c

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

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

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

end of thread, other threads:[~2020-11-09 11:41 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-18  3:54 drivers/scsi/sg.c:1145 sg_ioctl_common() warn: inconsistent returns 'sfp->rq_list_lock' kernel test robot
2020-08-18  3:54 ` kernel test robot
2020-11-09 11:41 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.