* [mkp-scsi:for-next 99/119] drivers/scsi/scsi_scan.c:1126 scsi_add_lun() warn: inconsistent returns '&sdev->request_queue->limits_lock'.
@ 2024-04-13 12:24 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-04-13 12:24 UTC (permalink / raw
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Christoph Hellwig <hch@lst.de>
CC: "Martin K. Petersen" <martin.petersen@oracle.com>
CC: Bart Van Assche <bvanassche@acm.org>
CC: Damien Le Moal <dlemoal@kernel.org>
CC: Hannes Reinecke <hare@suse.de>
CC: Johannes Thumshirn <johannes.thumshirn@wdc.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
head: f92141e18c8b466027e226f3388de15b059b6f65
commit: b7eefcf11f3fb1703ddfa075d4f4bc30b9c50eb4 [99/119] scsi: core: Add a device_configure method to the host template
:::::: branch date: 26 hours ago
:::::: commit date: 35 hours ago
config: mips-randconfig-r071-20240413 (https://download.01.org/0day-ci/archive/20240413/202404132006.uEyZu33S-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 13.2.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202404132006.uEyZu33S-lkp@intel.com/
smatch warnings:
drivers/scsi/scsi_scan.c:1126 scsi_add_lun() warn: inconsistent returns '&sdev->request_queue->limits_lock'.
vim +1126 drivers/scsi/scsi_scan.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 858
^1da177e4c3f41 Linus Torvalds 2005-04-16 859 /**
f64a181d898e05 Christoph Hellwig 2005-10-31 860 * scsi_add_lun - allocate and fully initialze a scsi_device
6d877688ef4113 Matthew Wilcox 2007-07-11 861 * @sdev: holds information to be stored in the new scsi_device
^1da177e4c3f41 Linus Torvalds 2005-04-16 862 * @inq_result: holds the result of a previous INQUIRY to the LUN
^1da177e4c3f41 Linus Torvalds 2005-04-16 863 * @bflags: black/white list flag
6d877688ef4113 Matthew Wilcox 2007-07-11 864 * @async: 1 if this device is being scanned asynchronously
^1da177e4c3f41 Linus Torvalds 2005-04-16 865 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 866 * Description:
6d877688ef4113 Matthew Wilcox 2007-07-11 867 * Initialize the scsi_device @sdev. Optionally set fields based
6d877688ef4113 Matthew Wilcox 2007-07-11 868 * on values in *@bflags.
^1da177e4c3f41 Linus Torvalds 2005-04-16 869 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 870 * Return:
f64a181d898e05 Christoph Hellwig 2005-10-31 871 * SCSI_SCAN_NO_RESPONSE: could not allocate or setup a scsi_device
f64a181d898e05 Christoph Hellwig 2005-10-31 872 * SCSI_SCAN_LUN_PRESENT: a new scsi_device was allocated and initialized
^1da177e4c3f41 Linus Torvalds 2005-04-16 873 **/
e5b3cd42960a10 Alan Stern 2006-08-21 874 static int scsi_add_lun(struct scsi_device *sdev, unsigned char *inq_result,
093b8886f446c9 Bart Van Assche 2017-12-12 875 blist_flags_t *bflags, int async)
^1da177e4c3f41 Linus Torvalds 2005-04-16 876 {
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 877 const struct scsi_host_template *hostt = sdev->host->hostt;
693a1e8cbe121b Christoph Hellwig 2024-04-09 878 struct queue_limits lim;
6f4267e3bd1211 James Bottomley 2008-08-22 879 int ret;
6f4267e3bd1211 James Bottomley 2008-08-22 880
^1da177e4c3f41 Linus Torvalds 2005-04-16 881 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 882 * XXX do not save the inquiry, since it can change underneath us,
^1da177e4c3f41 Linus Torvalds 2005-04-16 883 * save just vendor/model/rev.
^1da177e4c3f41 Linus Torvalds 2005-04-16 884 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 885 * Rather than save it and have an ioctl that retrieves the saved
^1da177e4c3f41 Linus Torvalds 2005-04-16 886 * value, have an ioctl that executes the same INQUIRY code used
^1da177e4c3f41 Linus Torvalds 2005-04-16 887 * in scsi_probe_lun, let user level programs doing INQUIRY
^1da177e4c3f41 Linus Torvalds 2005-04-16 888 * scanning run at their own risk, or supply a user level program
^1da177e4c3f41 Linus Torvalds 2005-04-16 889 * that can correctly scan.
^1da177e4c3f41 Linus Torvalds 2005-04-16 890 */
09123d230a294c Alan Stern 2006-11-10 891
09123d230a294c Alan Stern 2006-11-10 892 /*
09123d230a294c Alan Stern 2006-11-10 893 * Copy at least 36 bytes of INQUIRY data, so that we don't
09123d230a294c Alan Stern 2006-11-10 894 * dereference unallocated memory when accessing the Vendor,
09123d230a294c Alan Stern 2006-11-10 895 * Product, and Revision strings. Badly behaved devices may set
09123d230a294c Alan Stern 2006-11-10 896 * the INQUIRY Additional Length byte to a small value, indicating
09123d230a294c Alan Stern 2006-11-10 897 * these strings are invalid, but often they contain plausible data
09123d230a294c Alan Stern 2006-11-10 898 * nonetheless. It doesn't matter if the device sent < 36 bytes
09123d230a294c Alan Stern 2006-11-10 899 * total, since scsi_probe_lun() initializes inq_result with 0s.
09123d230a294c Alan Stern 2006-11-10 900 */
09123d230a294c Alan Stern 2006-11-10 901 sdev->inquiry = kmemdup(inq_result,
09123d230a294c Alan Stern 2006-11-10 902 max_t(size_t, sdev->inquiry_len, 36),
1749ef00f73126 Benjamin Block 2019-02-21 903 GFP_KERNEL);
09123d230a294c Alan Stern 2006-11-10 904 if (sdev->inquiry == NULL)
^1da177e4c3f41 Linus Torvalds 2005-04-16 905 return SCSI_SCAN_NO_RESPONSE;
^1da177e4c3f41 Linus Torvalds 2005-04-16 906
^1da177e4c3f41 Linus Torvalds 2005-04-16 907 sdev->vendor = (char *) (sdev->inquiry + 8);
^1da177e4c3f41 Linus Torvalds 2005-04-16 908 sdev->model = (char *) (sdev->inquiry + 16);
^1da177e4c3f41 Linus Torvalds 2005-04-16 909 sdev->rev = (char *) (sdev->inquiry + 32);
^1da177e4c3f41 Linus Torvalds 2005-04-16 910
14216561e16467 James Bottomley 2012-07-25 911 if (strncmp(sdev->vendor, "ATA ", 8) == 0) {
14216561e16467 James Bottomley 2012-07-25 912 /*
14216561e16467 James Bottomley 2012-07-25 913 * sata emulation layer device. This is a hack to work around
14216561e16467 James Bottomley 2012-07-25 914 * the SATL power management specifications which state that
14216561e16467 James Bottomley 2012-07-25 915 * when the SATL detects the device has gone into standby
14216561e16467 James Bottomley 2012-07-25 916 * mode, it shall respond with NOT READY.
14216561e16467 James Bottomley 2012-07-25 917 */
14216561e16467 James Bottomley 2012-07-25 918 sdev->allow_restart = 1;
14216561e16467 James Bottomley 2012-07-25 919 }
14216561e16467 James Bottomley 2012-07-25 920
^1da177e4c3f41 Linus Torvalds 2005-04-16 921 if (*bflags & BLIST_ISROM) {
6d877688ef4113 Matthew Wilcox 2007-07-11 922 sdev->type = TYPE_ROM;
6d877688ef4113 Matthew Wilcox 2007-07-11 923 sdev->removable = 1;
6d877688ef4113 Matthew Wilcox 2007-07-11 924 } else {
6d877688ef4113 Matthew Wilcox 2007-07-11 925 sdev->type = (inq_result[0] & 0x1f);
6d877688ef4113 Matthew Wilcox 2007-07-11 926 sdev->removable = (inq_result[1] & 0x80) >> 7;
45341ca3fcacc8 Subhash Jadavani 2014-09-25 927
45341ca3fcacc8 Subhash Jadavani 2014-09-25 928 /*
45341ca3fcacc8 Subhash Jadavani 2014-09-25 929 * some devices may respond with wrong type for
45341ca3fcacc8 Subhash Jadavani 2014-09-25 930 * well-known logical units. Force well-known type
45341ca3fcacc8 Subhash Jadavani 2014-09-25 931 * to enumerate them correctly.
45341ca3fcacc8 Subhash Jadavani 2014-09-25 932 */
45341ca3fcacc8 Subhash Jadavani 2014-09-25 933 if (scsi_is_wlun(sdev->lun) && sdev->type != TYPE_WLUN) {
45341ca3fcacc8 Subhash Jadavani 2014-09-25 934 sdev_printk(KERN_WARNING, sdev,
45341ca3fcacc8 Subhash Jadavani 2014-09-25 935 "%s: correcting incorrect peripheral device type 0x%x for W-LUN 0x%16xhN\n",
45341ca3fcacc8 Subhash Jadavani 2014-09-25 936 __func__, sdev->type, (unsigned int)sdev->lun);
45341ca3fcacc8 Subhash Jadavani 2014-09-25 937 sdev->type = TYPE_WLUN;
45341ca3fcacc8 Subhash Jadavani 2014-09-25 938 }
45341ca3fcacc8 Subhash Jadavani 2014-09-25 939
6d877688ef4113 Matthew Wilcox 2007-07-11 940 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 941
6d877688ef4113 Matthew Wilcox 2007-07-11 942 if (sdev->type == TYPE_RBC || sdev->type == TYPE_ROM) {
6d877688ef4113 Matthew Wilcox 2007-07-11 943 /* RBC and MMC devices can return SCSI-3 compliance and yet
6d877688ef4113 Matthew Wilcox 2007-07-11 944 * still not support REPORT LUNS, so make them act as
6d877688ef4113 Matthew Wilcox 2007-07-11 945 * BLIST_NOREPORTLUN unless BLIST_REPORTLUN2 is
6d877688ef4113 Matthew Wilcox 2007-07-11 946 * specifically set */
6d877688ef4113 Matthew Wilcox 2007-07-11 947 if ((*bflags & BLIST_REPORTLUN2) == 0)
6d877688ef4113 Matthew Wilcox 2007-07-11 948 *bflags |= BLIST_NOREPORTLUN;
6d877688ef4113 Matthew Wilcox 2007-07-11 949 }
6d877688ef4113 Matthew Wilcox 2007-07-11 950
^1da177e4c3f41 Linus Torvalds 2005-04-16 951 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 952 * For a peripheral qualifier (PQ) value of 1 (001b), the SCSI
^1da177e4c3f41 Linus Torvalds 2005-04-16 953 * spec says: The device server is capable of supporting the
^1da177e4c3f41 Linus Torvalds 2005-04-16 954 * specified peripheral device type on this logical unit. However,
^1da177e4c3f41 Linus Torvalds 2005-04-16 955 * the physical device is not currently connected to this logical
^1da177e4c3f41 Linus Torvalds 2005-04-16 956 * unit.
^1da177e4c3f41 Linus Torvalds 2005-04-16 957 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 958 * The above is vague, as it implies that we could treat 001 and
^1da177e4c3f41 Linus Torvalds 2005-04-16 959 * 011 the same. Stay compatible with previous code, and create a
f64a181d898e05 Christoph Hellwig 2005-10-31 960 * scsi_device for a PQ of 1
^1da177e4c3f41 Linus Torvalds 2005-04-16 961 *
^1da177e4c3f41 Linus Torvalds 2005-04-16 962 * Don't set the device offline here; rather let the upper
^1da177e4c3f41 Linus Torvalds 2005-04-16 963 * level drivers eval the PQ to decide whether they should
^1da177e4c3f41 Linus Torvalds 2005-04-16 964 * attach. So remove ((inq_result[0] >> 5) & 7) == 1 check.
^1da177e4c3f41 Linus Torvalds 2005-04-16 965 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 966
^1da177e4c3f41 Linus Torvalds 2005-04-16 967 sdev->inq_periph_qual = (inq_result[0] >> 5) & 7;
^1da177e4c3f41 Linus Torvalds 2005-04-16 968 sdev->lockable = sdev->removable;
^1da177e4c3f41 Linus Torvalds 2005-04-16 969 sdev->soft_reset = (inq_result[7] & 1) && ((inq_result[3] & 7) == 2);
^1da177e4c3f41 Linus Torvalds 2005-04-16 970
6d877688ef4113 Matthew Wilcox 2007-07-11 971 if (sdev->scsi_level >= SCSI_3 ||
6d877688ef4113 Matthew Wilcox 2007-07-11 972 (sdev->inquiry_len > 56 && inq_result[56] & 0x04))
^1da177e4c3f41 Linus Torvalds 2005-04-16 973 sdev->ppr = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 974 if (inq_result[7] & 0x60)
^1da177e4c3f41 Linus Torvalds 2005-04-16 975 sdev->wdtr = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 976 if (inq_result[7] & 0x10)
^1da177e4c3f41 Linus Torvalds 2005-04-16 977 sdev->sdtr = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 978
19ac0db3e22de3 James Bottomley 2006-08-06 979 sdev_printk(KERN_NOTICE, sdev, "%s %.8s %.16s %.4s PQ: %d "
4ff36718ede26e Matthew Wilcox 2006-07-04 980 "ANSI: %d%s\n", scsi_device_type(sdev->type),
4ff36718ede26e Matthew Wilcox 2006-07-04 981 sdev->vendor, sdev->model, sdev->rev,
4ff36718ede26e Matthew Wilcox 2006-07-04 982 sdev->inq_periph_qual, inq_result[2] & 0x07,
4ff36718ede26e Matthew Wilcox 2006-07-04 983 (inq_result[3] & 0x0f) == 1 ? " CCS" : "");
4ff36718ede26e Matthew Wilcox 2006-07-04 984
^1da177e4c3f41 Linus Torvalds 2005-04-16 985 if ((sdev->scsi_level >= SCSI_2) && (inq_result[7] & 2) &&
c8b09f6fb67df7 Christoph Hellwig 2014-11-03 986 !(*bflags & BLIST_NOTQ)) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 987 sdev->tagged_supported = 1;
c8b09f6fb67df7 Christoph Hellwig 2014-11-03 988 sdev->simple_tags = 1;
c8b09f6fb67df7 Christoph Hellwig 2014-11-03 989 }
6d877688ef4113 Matthew Wilcox 2007-07-11 990
^1da177e4c3f41 Linus Torvalds 2005-04-16 991 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 992 * Some devices (Texel CD ROM drives) have handshaking problems
^1da177e4c3f41 Linus Torvalds 2005-04-16 993 * when used with the Seagate controllers. borken is initialized
^1da177e4c3f41 Linus Torvalds 2005-04-16 994 * to 1, and then set it to 0 here.
^1da177e4c3f41 Linus Torvalds 2005-04-16 995 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 996 if ((*bflags & BLIST_BORKEN) == 0)
^1da177e4c3f41 Linus Torvalds 2005-04-16 997 sdev->borken = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 998
6d877688ef4113 Matthew Wilcox 2007-07-11 999 if (*bflags & BLIST_NO_ULD_ATTACH)
6d877688ef4113 Matthew Wilcox 2007-07-11 1000 sdev->no_uld_attach = 1;
6d877688ef4113 Matthew Wilcox 2007-07-11 1001
^1da177e4c3f41 Linus Torvalds 2005-04-16 1002 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1003 * Apparently some really broken devices (contrary to the SCSI
^1da177e4c3f41 Linus Torvalds 2005-04-16 1004 * standards) need to be selected without asserting ATN
^1da177e4c3f41 Linus Torvalds 2005-04-16 1005 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1006 if (*bflags & BLIST_SELECT_NO_ATN)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1007 sdev->select_no_atn = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1008
^1da177e4c3f41 Linus Torvalds 2005-04-16 1009 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1010 * Some devices may not want to have a start command automatically
^1da177e4c3f41 Linus Torvalds 2005-04-16 1011 * issued when a device is added.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1012 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1013 if (*bflags & BLIST_NOSTARTONADD)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1014 sdev->no_start_on_add = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1015
^1da177e4c3f41 Linus Torvalds 2005-04-16 1016 if (*bflags & BLIST_SINGLELUN)
25d7c363f2663f Tony Battersby 2007-11-12 1017 scsi_target(sdev)->single_lun = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1018
^1da177e4c3f41 Linus Torvalds 2005-04-16 1019 sdev->use_10_for_rw = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1020
0213436a2cc5e4 Janusz Dziemidowicz 2014-07-24 1021 /* some devices don't like REPORT SUPPORTED OPERATION CODES
0213436a2cc5e4 Janusz Dziemidowicz 2014-07-24 1022 * and will simply timeout causing sd_mod init to take a very
0213436a2cc5e4 Janusz Dziemidowicz 2014-07-24 1023 * very long time */
0213436a2cc5e4 Janusz Dziemidowicz 2014-07-24 1024 if (*bflags & BLIST_NO_RSOC)
0213436a2cc5e4 Janusz Dziemidowicz 2014-07-24 1025 sdev->no_report_opcodes = 1;
0213436a2cc5e4 Janusz Dziemidowicz 2014-07-24 1026
^1da177e4c3f41 Linus Torvalds 2005-04-16 1027 /* set the device running here so that slave configure
^1da177e4c3f41 Linus Torvalds 2005-04-16 1028 * may do I/O */
0db6ca8a5e1ea5 Bart Van Assche 2017-06-02 1029 mutex_lock(&sdev->state_mutex);
6f4267e3bd1211 James Bottomley 2008-08-22 1030 ret = scsi_device_set_state(sdev, SDEV_RUNNING);
0db6ca8a5e1ea5 Bart Van Assche 2017-06-02 1031 if (ret)
6f4267e3bd1211 James Bottomley 2008-08-22 1032 ret = scsi_device_set_state(sdev, SDEV_BLOCK);
0db6ca8a5e1ea5 Bart Van Assche 2017-06-02 1033 mutex_unlock(&sdev->state_mutex);
6f4267e3bd1211 James Bottomley 2008-08-22 1034
6f4267e3bd1211 James Bottomley 2008-08-22 1035 if (ret) {
6f4267e3bd1211 James Bottomley 2008-08-22 1036 sdev_printk(KERN_ERR, sdev,
6f4267e3bd1211 James Bottomley 2008-08-22 1037 "in wrong state %s to complete scan\n",
6f4267e3bd1211 James Bottomley 2008-08-22 1038 scsi_device_state_name(sdev->sdev_state));
6f4267e3bd1211 James Bottomley 2008-08-22 1039 return SCSI_SCAN_NO_RESPONSE;
6f4267e3bd1211 James Bottomley 2008-08-22 1040 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1041
^1da177e4c3f41 Linus Torvalds 2005-04-16 1042 if (*bflags & BLIST_NOT_LOCKABLE)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1043 sdev->lockable = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1044
^1da177e4c3f41 Linus Torvalds 2005-04-16 1045 if (*bflags & BLIST_RETRY_HWERROR)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1046 sdev->retry_hwerror = 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1047
d974e4265dbd35 Martin K. Petersen 2012-08-28 1048 if (*bflags & BLIST_NO_DIF)
d974e4265dbd35 Martin K. Petersen 2012-08-28 1049 sdev->no_dif = 1;
d974e4265dbd35 Martin K. Petersen 2012-08-28 1050
28a0bc4120d38a Martin K. Petersen 2017-09-27 1051 if (*bflags & BLIST_UNMAP_LIMIT_WS)
28a0bc4120d38a Martin K. Petersen 2017-09-27 1052 sdev->unmap_limit_for_ws = 1;
28a0bc4120d38a Martin K. Petersen 2017-09-27 1053
f591a2e0548da8 Martin Kepplinger 2021-07-04 1054 if (*bflags & BLIST_IGN_MEDIA_CHANGE)
f591a2e0548da8 Martin Kepplinger 2021-07-04 1055 sdev->ignore_media_change = 1;
f591a2e0548da8 Martin Kepplinger 2021-07-04 1056
0816c9251a7180 Martin K. Petersen 2013-05-10 1057 sdev->eh_timeout = SCSI_DEFAULT_EH_TIMEOUT;
0816c9251a7180 Martin K. Petersen 2013-05-10 1058
c1d40a527e885a Martin K. Petersen 2014-07-15 1059 if (*bflags & BLIST_TRY_VPD_PAGES)
c1d40a527e885a Martin K. Petersen 2014-07-15 1060 sdev->try_vpd_pages = 1;
c1d40a527e885a Martin K. Petersen 2014-07-15 1061 else if (*bflags & BLIST_SKIP_VPD_PAGES)
56f2a8016e0ab5 Martin K. Petersen 2013-04-24 1062 sdev->skip_vpd_pages = 1;
56f2a8016e0ab5 Martin K. Petersen 2013-04-24 1063
4b1a2c2a8e0ddc Lee Duncan 2022-09-28 1064 if (*bflags & BLIST_NO_VPD_SIZE)
4b1a2c2a8e0ddc Lee Duncan 2022-09-28 1065 sdev->no_vpd_size = 1;
4b1a2c2a8e0ddc Lee Duncan 2022-09-28 1066
^1da177e4c3f41 Linus Torvalds 2005-04-16 1067 transport_configure_device(&sdev->sdev_gendev);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1068
693a1e8cbe121b Christoph Hellwig 2024-04-09 1069 /*
693a1e8cbe121b Christoph Hellwig 2024-04-09 1070 * No need to freeze the queue as it isn't reachable to anyone else yet.
693a1e8cbe121b Christoph Hellwig 2024-04-09 1071 */
693a1e8cbe121b Christoph Hellwig 2024-04-09 1072 lim = queue_limits_start_update(sdev->request_queue);
693a1e8cbe121b Christoph Hellwig 2024-04-09 1073 if (*bflags & BLIST_MAX_512)
693a1e8cbe121b Christoph Hellwig 2024-04-09 1074 lim.max_hw_sectors = 512;
693a1e8cbe121b Christoph Hellwig 2024-04-09 1075 else if (*bflags & BLIST_MAX_1024)
693a1e8cbe121b Christoph Hellwig 2024-04-09 1076 lim.max_hw_sectors = 1024;
693a1e8cbe121b Christoph Hellwig 2024-04-09 1077
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1078 if (hostt->device_configure)
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1079 ret = hostt->device_configure(sdev, &lim);
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1080 else if (hostt->slave_configure)
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1081 ret = hostt->slave_configure(sdev);
938050916f57f0 Christoph Hellwig 2006-02-17 1082 if (ret) {
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1083 queue_limits_cancel_update(sdev->request_queue);
938050916f57f0 Christoph Hellwig 2006-02-17 1084 /*
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1085 * If the LLDD reports device not present, don't clutter the
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1086 * console with failure messages.
938050916f57f0 Christoph Hellwig 2006-02-17 1087 */
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1088 if (ret != -ENXIO)
938050916f57f0 Christoph Hellwig 2006-02-17 1089 sdev_printk(KERN_ERR, sdev,
938050916f57f0 Christoph Hellwig 2006-02-17 1090 "failed to configure device\n");
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1091 return SCSI_SCAN_NO_RESPONSE;
938050916f57f0 Christoph Hellwig 2006-02-17 1092 }
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1093
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1094 ret = queue_limits_commit_update(sdev->request_queue, &lim);
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1095 if (ret) {
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1096 sdev_printk(KERN_ERR, sdev, "failed to apply queue limits.\n");
938050916f57f0 Christoph Hellwig 2006-02-17 1097 return SCSI_SCAN_NO_RESPONSE;
938050916f57f0 Christoph Hellwig 2006-02-17 1098 }
edb854a3680bac Ming Lei 2022-01-27 1099
edb854a3680bac Ming Lei 2022-01-27 1100 /*
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1101 * The queue_depth is often changed in ->device_configure.
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1102 *
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1103 * Set up budget map again since memory consumption of the map depends
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1104 * on actual queue depth.
edb854a3680bac Ming Lei 2022-01-27 1105 */
b7eefcf11f3fb1 Christoph Hellwig 2024-04-09 1106 if (hostt->device_configure || hostt->slave_configure)
edb854a3680bac Ming Lei 2022-01-27 1107 scsi_realloc_sdev_budget_map(sdev, sdev->queue_depth);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1108
b3ae8780b42918 Hannes Reinecke 2014-03-15 1109 if (sdev->scsi_level >= SCSI_3)
b3ae8780b42918 Hannes Reinecke 2014-03-15 1110 scsi_attach_vpd(sdev);
b3ae8780b42918 Hannes Reinecke 2014-03-15 1111
624885209f31eb Damien Le Moal 2023-05-11 1112 scsi_cdl_check(sdev);
624885209f31eb Damien Le Moal 2023-05-11 1113
4a84067dbfce43 Vasu Dev 2009-10-22 1114 sdev->max_queue_depth = sdev->queue_depth;
020b0f0a31920e Ming Lei 2021-01-22 1115 WARN_ON_ONCE(sdev->max_queue_depth > sdev->budget_map.depth);
345e29608b4bb4 Hannes Reinecke 2017-10-02 1116 sdev->sdev_bflags = *bflags;
4a84067dbfce43 Vasu Dev 2009-10-22 1117
^1da177e4c3f41 Linus Torvalds 2005-04-16 1118 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 1119 * Ok, the device is now all set up, we can
^1da177e4c3f41 Linus Torvalds 2005-04-16 1120 * register it and tell the rest of the kernel
^1da177e4c3f41 Linus Torvalds 2005-04-16 1121 * about it.
^1da177e4c3f41 Linus Torvalds 2005-04-16 1122 */
3e082a910d217b Matthew Wilcox 2006-09-28 1123 if (!async && scsi_sysfs_add_sdev(sdev) != 0)
b24b1033451fcc Alan Stern 2005-07-27 1124 return SCSI_SCAN_NO_RESPONSE;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1125
^1da177e4c3f41 Linus Torvalds 2005-04-16 @1126 return SCSI_SCAN_LUN_PRESENT;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1127 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1128
:::::: The code at line 1126 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2
:::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-04-13 12:24 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-13 12:24 [mkp-scsi:for-next 99/119] drivers/scsi/scsi_scan.c:1126 scsi_add_lun() warn: inconsistent returns '&sdev->request_queue->limits_lock' kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).