From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [hare-scsi-devel:scsi-result-rework 135/146] drivers/scsi/scsi_debug.c:1203:12: error: invalid storage class for function 'fetch_to_dev_buffer'
Date: Thu, 22 Apr 2021 13:18:13 +0800 [thread overview]
Message-ID: <202104221302.Px5wJMlo-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 29387 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git scsi-result-rework
head: 19720ea7b22b443a182646eef7edc36e32e7b515
commit: 56cfbbc9742fcafa726599c74f2d2f5c774b0557 [135/146] scsi_debug: set hostbyte before returning the result
config: mips-randconfig-r016-20210421 (attached as .config)
compiler: mips64el-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git/commit/?id=56cfbbc9742fcafa726599c74f2d2f5c774b0557
git remote add hare-scsi-devel https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git
git fetch --no-tags hare-scsi-devel scsi-result-rework
git checkout 56cfbbc9742fcafa726599c74f2d2f5c774b0557
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
drivers/scsi/scsi_debug.c: In function 'p_fill_from_dev_buffer':
>> drivers/scsi/scsi_debug.c:1203:12: error: invalid storage class for function 'fetch_to_dev_buffer'
1203 | static int fetch_to_dev_buffer(struct scsi_cmnd *scp, unsigned char *arr,
| ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1203:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
1203 | static int fetch_to_dev_buffer(struct scsi_cmnd *scp, unsigned char *arr,
| ^~~~~~
>> drivers/scsi/scsi_debug.c:1224:12: error: invalid storage class for function 'inquiry_vpd_83'
1224 | static int inquiry_vpd_83(unsigned char *arr, int port_group_id,
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1318:12: error: invalid storage class for function 'inquiry_vpd_84'
1318 | static int inquiry_vpd_84(unsigned char *arr)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1325:12: error: invalid storage class for function 'inquiry_vpd_85'
1325 | static int inquiry_vpd_85(unsigned char *arr)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1360:12: error: invalid storage class for function 'inquiry_vpd_88'
1360 | static int inquiry_vpd_88(unsigned char *arr, int target_dev_id)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1447:12: error: invalid storage class for function 'inquiry_vpd_89'
1447 | static int inquiry_vpd_89(unsigned char *arr)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1462:12: error: invalid storage class for function 'inquiry_vpd_b0'
1462 | static int inquiry_vpd_b0(unsigned char *arr)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1509:12: error: invalid storage class for function 'inquiry_vpd_b1'
1509 | static int inquiry_vpd_b1(struct sdebug_dev_info *devip, unsigned char *arr)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1523:12: error: invalid storage class for function 'inquiry_vpd_b2'
1523 | static int inquiry_vpd_b2(unsigned char *arr)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1542:12: error: invalid storage class for function 'inquiry_vpd_b6'
1542 | static int inquiry_vpd_b6(struct sdebug_dev_info *devip, unsigned char *arr)
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1564:12: error: invalid storage class for function 'resp_inquiry'
1564 | static int resp_inquiry(struct scsi_cmnd *scp, struct sdebug_dev_info *devip)
| ^~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1732:12: error: invalid storage class for function 'resp_requests'
1732 | static int resp_requests(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1786:12: error: invalid storage class for function 'resp_start_stop'
1786 | static int resp_start_stop(struct scsi_cmnd *scp, struct sdebug_dev_info *devip)
| ^~~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1829:17: error: invalid storage class for function 'get_sdebug_capacity'
1829 | static sector_t get_sdebug_capacity(void)
| ^~~~~~~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1841:12: error: invalid storage class for function 'resp_readcap'
1841 | static int resp_readcap(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1860:12: error: invalid storage class for function 'resp_readcap16'
1860 | static int resp_readcap16(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1899:12: error: invalid storage class for function 'resp_report_tgtpgs'
1899 | static int resp_report_tgtpgs(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:1977:12: error: invalid storage class for function 'resp_rsup_opcodes'
1977 | static int resp_rsup_opcodes(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~~~~
>> drivers/scsi/scsi_debug.c:2128:12: error: invalid storage class for function 'resp_rsup_tmfs'
2128 | static int resp_rsup_tmfs(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2157:12: error: invalid storage class for function 'resp_err_recov_pg'
2157 | static int resp_err_recov_pg(unsigned char *p, int pcontrol, int target)
| ^~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2168:12: error: invalid storage class for function 'resp_disconnect_pg'
2168 | static int resp_disconnect_pg(unsigned char *p, int pcontrol, int target)
| ^~~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2179:12: error: invalid storage class for function 'resp_format_pg'
2179 | static int resp_format_pg(unsigned char *p, int pcontrol, int target)
| ^~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2199:12: error: invalid storage class for function 'resp_caching_pg'
2199 | static int resp_caching_pg(unsigned char *p, int pcontrol, int target)
| ^~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2219:12: error: invalid storage class for function 'resp_ctrl_m_pg'
2219 | static int resp_ctrl_m_pg(unsigned char *p, int pcontrol, int target)
| ^~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2243:12: error: invalid storage class for function 'resp_iec_m_pg'
2243 | static int resp_iec_m_pg(unsigned char *p, int pcontrol, int target)
| ^~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2258:12: error: invalid storage class for function 'resp_sas_sf_m_pg'
2258 | static int resp_sas_sf_m_pg(unsigned char *p, int pcontrol, int target)
| ^~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2270:12: error: invalid storage class for function 'resp_sas_pcd_m_spg'
2270 | static int resp_sas_pcd_m_spg(unsigned char *p, int pcontrol, int target,
| ^~~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2303:12: error: invalid storage class for function 'resp_sas_sha_m_spg'
2303 | static int resp_sas_sha_m_spg(unsigned char *p, int pcontrol)
| ^~~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2317:12: error: invalid storage class for function 'resp_mode_sense'
2317 | static int resp_mode_sense(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2483:12: error: invalid storage class for function 'resp_mode_select'
2483 | static int resp_mode_select(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2567:12: error: invalid storage class for function 'resp_temp_l_pg'
2567 | static int resp_temp_l_pg(unsigned char *arr)
| ^~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2577:12: error: invalid storage class for function 'resp_ie_l_pg'
2577 | static int resp_ie_l_pg(unsigned char *arr)
| ^~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2592:12: error: invalid storage class for function 'resp_log_sense'
2592 | static int resp_log_sense(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2670:20: error: invalid storage class for function 'sdebug_dev_is_zoned'
2670 | static inline bool sdebug_dev_is_zoned(struct sdebug_dev_info *devip)
| ^~~~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2675:32: error: invalid storage class for function 'zbc_zone'
2675 | static struct sdeb_zone_state *zbc_zone(struct sdebug_dev_info *devip,
| ^~~~~~~~
drivers/scsi/scsi_debug.c:2681:20: error: invalid storage class for function 'zbc_zone_is_conv'
2681 | static inline bool zbc_zone_is_conv(struct sdeb_zone_state *zsp)
| ^~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2686:13: error: invalid storage class for function 'zbc_close_zone'
2686 | static void zbc_close_zone(struct sdebug_dev_info *devip,
| ^~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2711:13: error: invalid storage class for function 'zbc_close_imp_open_zone'
2711 | static void zbc_close_imp_open_zone(struct sdebug_dev_info *devip)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2724:13: error: invalid storage class for function 'zbc_open_zone'
2724 | static void zbc_open_zone(struct sdebug_dev_info *devip,
| ^~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2755:13: error: invalid storage class for function 'zbc_inc_wp'
2755 | static void zbc_inc_wp(struct sdebug_dev_info *devip,
| ^~~~~~~~~~
drivers/scsi/scsi_debug.c:2797:12: error: invalid storage class for function 'check_zbc_access_params'
2797 | static int check_zbc_access_params(struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2869:19: error: invalid storage class for function 'check_device_access_params'
2869 | static inline int check_device_access_params
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2902:39: error: invalid storage class for function 'devip2sip'
2902 | static inline struct sdeb_store_info *devip2sip(struct sdebug_dev_info *devip,
| ^~~~~~~~~
drivers/scsi/scsi_debug.c:2913:12: error: invalid storage class for function 'do_device_access'
2913 | static int do_device_access(struct sdeb_store_info *sip, struct scsi_cmnd *scp,
| ^~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2956:12: error: invalid storage class for function 'do_dout_fetch'
2956 | static int do_dout_fetch(struct scsi_cmnd *scp, u32 num, u8 *doutp)
| ^~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:2971:13: error: invalid storage class for function 'comp_write_worker'
2971 | static bool comp_write_worker(struct sdeb_store_info *sip, u64 lba, u32 num,
| ^~~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:3001:15: error: invalid storage class for function 'dif_compute_csum'
3001 | static __be16 dif_compute_csum(const void *buf, int len)
| ^~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:3013:12: error: invalid storage class for function 'dif_verify'
3013 | static int dif_verify(struct t10_pi_tuple *sdt, const void *data,
| ^~~~~~~~~~
drivers/scsi/scsi_debug.c:3040:13: error: invalid storage class for function 'dif_copy_prot'
3040 | static void dif_copy_prot(struct scsi_cmnd *scp, sector_t sector,
| ^~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:3086:12: error: invalid storage class for function 'prot_verify_read'
3086 | static int prot_verify_read(struct scsi_cmnd *scp, sector_t start_sec,
| ^~~~~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:3118:12: error: invalid storage class for function 'resp_read_dt0'
3118 | static int resp_read_dt0(struct scsi_cmnd *scp, struct sdebug_dev_info *devip)
| ^~~~~~~~~~~~~
drivers/scsi/scsi_debug.c:3250:13: error: invalid storage class for function 'dump_sector'
3250 | static void dump_sector(unsigned char *buf, int len)
vim +/fetch_to_dev_buffer +1203 drivers/scsi/scsi_debug.c
fb0cc8d1c1881c Douglas Gilbert 2016-05-31 1199
fb0cc8d1c1881c Douglas Gilbert 2016-05-31 1200 /* Fetches from SCSI "data-out" buffer. Returns number of bytes fetched into
fb0cc8d1c1881c Douglas Gilbert 2016-05-31 1201 * 'arr' or -1 if error.
fb0cc8d1c1881c Douglas Gilbert 2016-05-31 1202 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 @1203 static int fetch_to_dev_buffer(struct scsi_cmnd *scp, unsigned char *arr,
21a6182924d531 FUJITA Tomonori 2008-03-09 1204 int arr_len)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1205 {
21a6182924d531 FUJITA Tomonori 2008-03-09 1206 if (!scsi_bufflen(scp))
^1da177e4c3f41 Linus Torvalds 2005-04-16 1207 return 0;
ae3d56d81507c3 Christoph Hellwig 2019-01-29 1208 if (scp->sc_data_direction != DMA_TO_DEVICE)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1209 return -1;
21a6182924d531 FUJITA Tomonori 2008-03-09 1210
21a6182924d531 FUJITA Tomonori 2008-03-09 1211 return scsi_sg_copy_to_buffer(scp, arr, arr_len);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1212 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 1213
^1da177e4c3f41 Linus Torvalds 2005-04-16 1214
e5203cf05282a4 Hannes Reinecke 2017-10-02 1215 static char sdebug_inq_vendor_id[9] = "Linux ";
e5203cf05282a4 Hannes Reinecke 2017-10-02 1216 static char sdebug_inq_product_id[17] = "scsi_debug ";
9b760fd8776475 Douglas Gilbert 2017-12-05 1217 static char sdebug_inq_product_rev[5] = SDEBUG_VERSION;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1218 /* Use some locally assigned NAAs for SAS addresses. */
1b37bd606deef0 Douglas Gilbert 2016-05-06 1219 static const u64 naa3_comp_a = 0x3222222000000000ULL;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1220 static const u64 naa3_comp_b = 0x3333333000000000ULL;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1221 static const u64 naa3_comp_c = 0x3111111000000000ULL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1222
cbf67842c3d9e7 Douglas Gilbert 2014-07-26 1223 /* Device identification VPD page. Returns number of bytes placed in arr */
760f3b0342df19 Douglas Gilbert 2016-05-06 @1224 static int inquiry_vpd_83(unsigned char *arr, int port_group_id,
5a09e39810ae04 Hannes Reinecke 2006-10-20 1225 int target_dev_id, int dev_id_num,
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1226 const char *dev_id_str, int dev_id_str_len,
bf47643389bbc1 Christoph Hellwig 2017-05-17 1227 const uuid_t *lu_name)
^1da177e4c3f41 Linus Torvalds 2005-04-16 1228 {
c65b1445d153a6 Douglas Gilbert 2006-06-06 1229 int num, port_a;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1230 char b[32];
^1da177e4c3f41 Linus Torvalds 2005-04-16 1231
c65b1445d153a6 Douglas Gilbert 2006-06-06 1232 port_a = target_dev_id + 1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1233 /* T10 vendor identifier field format (faked) */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1234 arr[0] = 0x2; /* ASCII */
^1da177e4c3f41 Linus Torvalds 2005-04-16 1235 arr[1] = 0x1;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1236 arr[2] = 0x0;
e5203cf05282a4 Hannes Reinecke 2017-10-02 1237 memcpy(&arr[4], sdebug_inq_vendor_id, 8);
e5203cf05282a4 Hannes Reinecke 2017-10-02 1238 memcpy(&arr[12], sdebug_inq_product_id, 16);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1239 memcpy(&arr[28], dev_id_str, dev_id_str_len);
^1da177e4c3f41 Linus Torvalds 2005-04-16 1240 num = 8 + 16 + dev_id_str_len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1241 arr[3] = num;
^1da177e4c3f41 Linus Torvalds 2005-04-16 1242 num += 4;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1243 if (dev_id_num >= 0) {
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1244 if (sdebug_uuid_ctl) {
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1245 /* Locally assigned UUID */
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1246 arr[num++] = 0x1; /* binary (not necessarily sas) */
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1247 arr[num++] = 0xa; /* PIV=0, lu, naa */
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1248 arr[num++] = 0x0;
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1249 arr[num++] = 0x12;
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1250 arr[num++] = 0x10; /* uuid type=1, locally assigned */
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1251 arr[num++] = 0x0;
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1252 memcpy(arr + num, lu_name, 16);
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1253 num += 16;
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1254 } else {
1b37bd606deef0 Douglas Gilbert 2016-05-06 1255 /* NAA-3, Logical unit identifier (binary) */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1256 arr[num++] = 0x1; /* binary (not necessarily sas) */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1257 arr[num++] = 0x3; /* PIV=0, lu, naa */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1258 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1259 arr[num++] = 0x8;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1260 put_unaligned_be64(naa3_comp_b + dev_id_num, arr + num);
773642d95b8220 Douglas Gilbert 2016-04-25 1261 num += 8;
09ba24c18c7e0c Douglas Gilbert 2016-05-06 1262 }
c65b1445d153a6 Douglas Gilbert 2006-06-06 1263 /* Target relative port number */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1264 arr[num++] = 0x61; /* proto=sas, binary */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1265 arr[num++] = 0x94; /* PIV=1, target port, rel port */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1266 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1267 arr[num++] = 0x4; /* length */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1268 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1269 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1270 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1271 arr[num++] = 0x1; /* relative port A */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1272 }
1b37bd606deef0 Douglas Gilbert 2016-05-06 1273 /* NAA-3, Target port identifier */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1274 arr[num++] = 0x61; /* proto=sas, binary */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1275 arr[num++] = 0x93; /* piv=1, target port, naa */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1276 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1277 arr[num++] = 0x8;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1278 put_unaligned_be64(naa3_comp_a + port_a, arr + num);
773642d95b8220 Douglas Gilbert 2016-04-25 1279 num += 8;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1280 /* NAA-3, Target port group identifier */
5a09e39810ae04 Hannes Reinecke 2006-10-20 1281 arr[num++] = 0x61; /* proto=sas, binary */
5a09e39810ae04 Hannes Reinecke 2006-10-20 1282 arr[num++] = 0x95; /* piv=1, target port group id */
5a09e39810ae04 Hannes Reinecke 2006-10-20 1283 arr[num++] = 0x0;
5a09e39810ae04 Hannes Reinecke 2006-10-20 1284 arr[num++] = 0x4;
5a09e39810ae04 Hannes Reinecke 2006-10-20 1285 arr[num++] = 0;
5a09e39810ae04 Hannes Reinecke 2006-10-20 1286 arr[num++] = 0;
773642d95b8220 Douglas Gilbert 2016-04-25 1287 put_unaligned_be16(port_group_id, arr + num);
773642d95b8220 Douglas Gilbert 2016-04-25 1288 num += 2;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1289 /* NAA-3, Target device identifier */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1290 arr[num++] = 0x61; /* proto=sas, binary */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1291 arr[num++] = 0xa3; /* piv=1, target device, naa */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1292 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1293 arr[num++] = 0x8;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1294 put_unaligned_be64(naa3_comp_a + target_dev_id, arr + num);
773642d95b8220 Douglas Gilbert 2016-04-25 1295 num += 8;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1296 /* SCSI name string: Target device identifier */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1297 arr[num++] = 0x63; /* proto=sas, UTF-8 */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1298 arr[num++] = 0xa8; /* piv=1, target device, SCSI name string */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1299 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1300 arr[num++] = 24;
1b37bd606deef0 Douglas Gilbert 2016-05-06 1301 memcpy(arr + num, "naa.32222220", 12);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1302 num += 12;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1303 snprintf(b, sizeof(b), "%08X", target_dev_id);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1304 memcpy(arr + num, b, 8);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1305 num += 8;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1306 memset(arr + num, 0, 4);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1307 num += 4;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1308 return num;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1309 }
c65b1445d153a6 Douglas Gilbert 2006-06-06 1310
c65b1445d153a6 Douglas Gilbert 2006-06-06 1311 static unsigned char vpd84_data[] = {
c65b1445d153a6 Douglas Gilbert 2006-06-06 1312 /* from 4th byte */ 0x22,0x22,0x22,0x0,0xbb,0x0,
c65b1445d153a6 Douglas Gilbert 2006-06-06 1313 0x22,0x22,0x22,0x0,0xbb,0x1,
c65b1445d153a6 Douglas Gilbert 2006-06-06 1314 0x22,0x22,0x22,0x0,0xbb,0x2,
c65b1445d153a6 Douglas Gilbert 2006-06-06 1315 };
c65b1445d153a6 Douglas Gilbert 2006-06-06 1316
cbf67842c3d9e7 Douglas Gilbert 2014-07-26 1317 /* Software interface identification VPD page */
760f3b0342df19 Douglas Gilbert 2016-05-06 @1318 static int inquiry_vpd_84(unsigned char *arr)
c65b1445d153a6 Douglas Gilbert 2006-06-06 1319 {
c65b1445d153a6 Douglas Gilbert 2006-06-06 1320 memcpy(arr, vpd84_data, sizeof(vpd84_data));
c65b1445d153a6 Douglas Gilbert 2006-06-06 1321 return sizeof(vpd84_data);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1322 }
c65b1445d153a6 Douglas Gilbert 2006-06-06 1323
cbf67842c3d9e7 Douglas Gilbert 2014-07-26 1324 /* Management network addresses VPD page */
760f3b0342df19 Douglas Gilbert 2016-05-06 @1325 static int inquiry_vpd_85(unsigned char *arr)
c65b1445d153a6 Douglas Gilbert 2006-06-06 1326 {
c65b1445d153a6 Douglas Gilbert 2006-06-06 1327 int num = 0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1328 const char *na1 = "https://www.kernel.org/config";
c65b1445d153a6 Douglas Gilbert 2006-06-06 1329 const char *na2 = "http://www.kernel.org/log";
c65b1445d153a6 Douglas Gilbert 2006-06-06 1330 int plen, olen;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1331
c65b1445d153a6 Douglas Gilbert 2006-06-06 1332 arr[num++] = 0x1; /* lu, storage config */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1333 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1334 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1335 olen = strlen(na1);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1336 plen = olen + 1;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1337 if (plen % 4)
c65b1445d153a6 Douglas Gilbert 2006-06-06 1338 plen = ((plen / 4) + 1) * 4;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1339 arr[num++] = plen; /* length, null termianted, padded */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1340 memcpy(arr + num, na1, olen);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1341 memset(arr + num + olen, 0, plen - olen);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1342 num += plen;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1343
c65b1445d153a6 Douglas Gilbert 2006-06-06 1344 arr[num++] = 0x4; /* lu, logging */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1345 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1346 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1347 olen = strlen(na2);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1348 plen = olen + 1;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1349 if (plen % 4)
c65b1445d153a6 Douglas Gilbert 2006-06-06 1350 plen = ((plen / 4) + 1) * 4;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1351 arr[num++] = plen; /* length, null terminated, padded */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1352 memcpy(arr + num, na2, olen);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1353 memset(arr + num + olen, 0, plen - olen);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1354 num += plen;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1355
c65b1445d153a6 Douglas Gilbert 2006-06-06 1356 return num;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1357 }
c65b1445d153a6 Douglas Gilbert 2006-06-06 1358
c65b1445d153a6 Douglas Gilbert 2006-06-06 1359 /* SCSI ports VPD page */
760f3b0342df19 Douglas Gilbert 2016-05-06 @1360 static int inquiry_vpd_88(unsigned char *arr, int target_dev_id)
c65b1445d153a6 Douglas Gilbert 2006-06-06 1361 {
c65b1445d153a6 Douglas Gilbert 2006-06-06 1362 int num = 0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1363 int port_a, port_b;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1364
c65b1445d153a6 Douglas Gilbert 2006-06-06 1365 port_a = target_dev_id + 1;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1366 port_b = port_a + 1;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1367 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1368 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1369 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1370 arr[num++] = 0x1; /* relative port 1 (primary) */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1371 memset(arr + num, 0, 6);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1372 num += 6;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1373 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1374 arr[num++] = 12; /* length tp descriptor */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1375 /* naa-5 target port identifier (A) */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1376 arr[num++] = 0x61; /* proto=sas, binary */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1377 arr[num++] = 0x93; /* PIV=1, target port, NAA */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1378 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1379 arr[num++] = 0x8; /* length */
1b37bd606deef0 Douglas Gilbert 2016-05-06 1380 put_unaligned_be64(naa3_comp_a + port_a, arr + num);
773642d95b8220 Douglas Gilbert 2016-04-25 1381 num += 8;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1382 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1383 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1384 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1385 arr[num++] = 0x2; /* relative port 2 (secondary) */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1386 memset(arr + num, 0, 6);
c65b1445d153a6 Douglas Gilbert 2006-06-06 1387 num += 6;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1388 arr[num++] = 0x0;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1389 arr[num++] = 12; /* length tp descriptor */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1390 /* naa-5 target port identifier (B) */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1391 arr[num++] = 0x61; /* proto=sas, binary */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1392 arr[num++] = 0x93; /* PIV=1, target port, NAA */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1393 arr[num++] = 0x0; /* reserved */
c65b1445d153a6 Douglas Gilbert 2006-06-06 1394 arr[num++] = 0x8; /* length */
1b37bd606deef0 Douglas Gilbert 2016-05-06 1395 put_unaligned_be64(naa3_comp_a + port_b, arr + num);
773642d95b8220 Douglas Gilbert 2016-04-25 1396 num += 8;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1397
c65b1445d153a6 Douglas Gilbert 2006-06-06 1398 return num;
c65b1445d153a6 Douglas Gilbert 2006-06-06 1399 }
c65b1445d153a6 Douglas Gilbert 2006-06-06 1400
:::::: The code at line 1203 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, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34689 bytes --]
reply other threads:[~2021-04-22 5:18 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=202104221302.Px5wJMlo-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@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.