* [hare-scsi-devel:scsi-result-rework 106/146] drivers/scsi/qla2xxx/qla_mr.c:2320:21: sparse: sparse: incorrect type in argument 5 (different base types)
@ 2021-04-21 21:31 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-21 21:31 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 23742 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git scsi-result-rework
head: 19720ea7b22b443a182646eef7edc36e32e7b515
commit: 80464ce86e0dbdbbf28e156dd0e7203808d39e77 [106/146] qla2xxx: convert qlafx00_status_entry() to cpu-endianness
config: riscv-randconfig-s032-20210421 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-341-g8af24329-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/hare/scsi-devel.git/commit/?id=80464ce86e0dbdbbf28e156dd0e7203808d39e77
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 80464ce86e0dbdbbf28e156dd0e7203808d39e77
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/scsi/qla2xxx/qla_mr.c:2320:21: sparse: sparse: incorrect type in argument 5 (different base types) @@ expected restricted __le16 [usertype] sstatus @@ got unsigned short [assigned] [usertype] scsi_status @@
drivers/scsi/qla2xxx/qla_mr.c:2320:21: sparse: expected restricted __le16 [usertype] sstatus
drivers/scsi/qla2xxx/qla_mr.c:2320:21: sparse: got unsigned short [assigned] [usertype] scsi_status
>> drivers/scsi/qla2xxx/qla_mr.c:2320:34: sparse: sparse: incorrect type in argument 6 (different base types) @@ expected restricted __le16 [assigned] [usertype] cpstatus @@ got unsigned short [assigned] [usertype] comp_status @@
drivers/scsi/qla2xxx/qla_mr.c:2320:34: sparse: expected restricted __le16 [assigned] [usertype] cpstatus
drivers/scsi/qla2xxx/qla_mr.c:2320:34: sparse: got unsigned short [assigned] [usertype] comp_status
vim +2320 drivers/scsi/qla2xxx/qla_mr.c
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2264
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2265 /**
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2266 * qlafx00_status_entry() - Process a Status IOCB entry.
2db6228d9cd13b Bart Van Assche 2018-01-23 2267 * @vha: SCSI driver HA context
2db6228d9cd13b Bart Van Assche 2018-01-23 2268 * @rsp: response queue
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2269 * @pkt: Entry pointer
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2270 */
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2271 static void
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2272 qlafx00_status_entry(scsi_qla_host_t *vha, struct rsp_que *rsp, void *pkt)
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2273 {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2274 srb_t *sp;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2275 fc_port_t *fcport;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2276 struct scsi_cmnd *cp;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2277 struct sts_entry_fx00 *sts;
80464ce86e0dbd Hannes Reinecke 2020-11-25 2278 uint16_t comp_status;
80464ce86e0dbd Hannes Reinecke 2020-11-25 2279 uint16_t scsi_status;
80464ce86e0dbd Hannes Reinecke 2020-11-25 2280 uint8_t lscsi_status;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2281 int32_t resid;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2282 uint32_t sense_len, par_sense_len, rsp_info_len, resid_len,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2283 fw_resid_len;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2284 uint8_t *rsp_info = NULL, *sense_data = NULL;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2285 struct qla_hw_data *ha = vha->hw;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2286 uint32_t hindex, handle;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2287 uint16_t que;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2288 struct req_que *req;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2289 int logit = 1;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2290 int res = 0;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2291
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2292 sts = (struct sts_entry_fx00 *) pkt;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2293
80464ce86e0dbd Hannes Reinecke 2020-11-25 2294 comp_status = le16_to_cpu(sts->comp_status);
80464ce86e0dbd Hannes Reinecke 2020-11-25 2295 scsi_status = le16_to_cpu(sts->scsi_status) & (uint16_t)SS_MASK;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2296 hindex = sts->handle;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2297 handle = LSW(hindex);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2298
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2299 que = MSW(hindex);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2300 req = ha->req_q_map[que];
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2301
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2302 /* Validate handle. */
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2303 if (handle < req->num_outstanding_cmds)
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2304 sp = req->outstanding_cmds[handle];
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2305 else
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2306 sp = NULL;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2307
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2308 if (sp == NULL) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2309 ql_dbg(ql_dbg_io, vha, 0x3034,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2310 "Invalid status handle (0x%x).\n", handle);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2311
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2312 set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2313 qla2xxx_wake_dpc(vha);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2314 return;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2315 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2316
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2317 if (sp->type == SRB_TM_CMD) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2318 req->outstanding_cmds[handle] = NULL;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2319 qlafx00_tm_iocb_entry(vha, req, pkt, sp,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 @2320 scsi_status, comp_status);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2321 return;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2322 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2323
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2324 /* Fast path completion. */
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2325 if (comp_status == CS_COMPLETE && scsi_status == 0) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2326 qla2x00_process_completed_request(vha, req, handle);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2327 return;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2328 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2329
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2330 req->outstanding_cmds[handle] = NULL;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2331 cp = GET_CMD_SP(sp);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2332 if (cp == NULL) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2333 ql_dbg(ql_dbg_io, vha, 0x3048,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2334 "Command already returned (0x%x/%p).\n",
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2335 handle, sp);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2336
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2337 return;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2338 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2339
80464ce86e0dbd Hannes Reinecke 2020-11-25 2340 lscsi_status = scsi_status & 0xff;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2341
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2342 fcport = sp->fcport;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2343
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2344 sense_len = par_sense_len = rsp_info_len = resid_len =
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2345 fw_resid_len = 0;
80464ce86e0dbd Hannes Reinecke 2020-11-25 2346 if (scsi_status & SS_SENSE_LEN_VALID)
1f8deefecdda5a Saurav Kashyap 2013-06-25 2347 sense_len = sts->sense_len;
80464ce86e0dbd Hannes Reinecke 2020-11-25 2348 if (scsi_status & (SS_RESIDUAL_UNDER | SS_RESIDUAL_OVER))
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2349 resid_len = le32_to_cpu(sts->residual_len);
80464ce86e0dbd Hannes Reinecke 2020-11-25 2350 if (comp_status == CS_DATA_UNDERRUN)
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2351 fw_resid_len = le32_to_cpu(sts->residual_len);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2352 rsp_info = sense_data = sts->data;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2353 par_sense_len = sizeof(sts->data);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2354
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2355 /* Check for overrun. */
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2356 if (comp_status == CS_COMPLETE &&
80464ce86e0dbd Hannes Reinecke 2020-11-25 2357 (scsi_status & SS_RESIDUAL_OVER))
80464ce86e0dbd Hannes Reinecke 2020-11-25 2358 comp_status = CS_DATA_OVERRUN;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2359
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2360 /*
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2361 * Based on Host and scsi status generate status code for Linux
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2362 */
80464ce86e0dbd Hannes Reinecke 2020-11-25 2363 switch (comp_status) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2364 case CS_COMPLETE:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2365 case CS_QUEUE_FULL:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2366 if (scsi_status == 0) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2367 res = DID_OK << 16;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2368 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2369 }
80464ce86e0dbd Hannes Reinecke 2020-11-25 2370 if (scsi_status & (SS_RESIDUAL_UNDER |SS_RESIDUAL_OVER)) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2371 resid = resid_len;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2372 scsi_set_resid(cp, resid);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2373
80464ce86e0dbd Hannes Reinecke 2020-11-25 2374 if (lscsi_status == SAM_STAT_GOOD &&
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2375 ((unsigned)(scsi_bufflen(cp) - resid) <
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2376 cp->underflow)) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2377 ql_dbg(ql_dbg_io, fcport->vha, 0x3050,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2378 "Mid-layer underflow "
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2379 "detected (0x%x of 0x%x bytes).\n",
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2380 resid, scsi_bufflen(cp));
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2381
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2382 res = DID_ERROR << 16;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2383 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2384 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2385 }
80464ce86e0dbd Hannes Reinecke 2020-11-25 2386 res = DID_OK << 16 | lscsi_status;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2387
80464ce86e0dbd Hannes Reinecke 2020-11-25 2388 if (lscsi_status == SAM_STAT_TASK_SET_FULL) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2389 ql_dbg(ql_dbg_io, fcport->vha, 0x3051,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2390 "QUEUE FULL detected.\n");
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2391 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2392 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2393 logit = 0;
80464ce86e0dbd Hannes Reinecke 2020-11-25 2394 if (lscsi_status != SAM_STAT_CHECK_CONDITION)
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2395 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2396
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2397 memset(cp->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
80464ce86e0dbd Hannes Reinecke 2020-11-25 2398 if (!(scsi_status & SS_SENSE_LEN_VALID))
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2399 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2400
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2401 qlafx00_handle_sense(sp, sense_data, par_sense_len, sense_len,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2402 rsp, res);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2403 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2404
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2405 case CS_DATA_UNDERRUN:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2406 /* Use F/W calculated residual length. */
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2407 if (IS_FWI2_CAPABLE(ha) || IS_QLAFX00(ha))
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2408 resid = fw_resid_len;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2409 else
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2410 resid = resid_len;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2411 scsi_set_resid(cp, resid);
80464ce86e0dbd Hannes Reinecke 2020-11-25 2412 if (scsi_status & SS_RESIDUAL_UNDER) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2413 if ((IS_FWI2_CAPABLE(ha) || IS_QLAFX00(ha))
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2414 && fw_resid_len != resid_len) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2415 ql_dbg(ql_dbg_io, fcport->vha, 0x3052,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2416 "Dropped frame(s) detected "
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2417 "(0x%x of 0x%x bytes).\n",
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2418 resid, scsi_bufflen(cp));
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2419
80464ce86e0dbd Hannes Reinecke 2020-11-25 2420 res = DID_ERROR << 16 | lscsi_status;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2421 goto check_scsi_status;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2422 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2423
80464ce86e0dbd Hannes Reinecke 2020-11-25 2424 if (lscsi_status == SAM_STAT_GOOD &&
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2425 ((unsigned)(scsi_bufflen(cp) - resid) <
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2426 cp->underflow)) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2427 ql_dbg(ql_dbg_io, fcport->vha, 0x3053,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2428 "Mid-layer underflow "
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2429 "detected (0x%x of 0x%x bytes, "
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2430 "cp->underflow: 0x%x).\n",
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2431 resid, scsi_bufflen(cp), cp->underflow);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2432
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2433 res = DID_ERROR << 16;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2434 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2435 }
80464ce86e0dbd Hannes Reinecke 2020-11-25 2436 } else if (lscsi_status != SAM_STAT_TASK_SET_FULL &&
80464ce86e0dbd Hannes Reinecke 2020-11-25 2437 lscsi_status != SAM_STAT_BUSY) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2438 /*
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2439 * scsi status of task set and busy are considered
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2440 * to be task not completed.
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2441 */
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2442
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2443 ql_dbg(ql_dbg_io, fcport->vha, 0x3054,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2444 "Dropped frame(s) detected (0x%x "
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2445 "of 0x%x bytes).\n", resid,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2446 scsi_bufflen(cp));
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2447
80464ce86e0dbd Hannes Reinecke 2020-11-25 2448 res = DID_ERROR << 16 | lscsi_status;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2449 goto check_scsi_status;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2450 } else {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2451 ql_dbg(ql_dbg_io, fcport->vha, 0x3055,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2452 "scsi_status: 0x%x, lscsi_status: 0x%x\n",
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2453 scsi_status, lscsi_status);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2454 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2455
80464ce86e0dbd Hannes Reinecke 2020-11-25 2456 res = DID_OK << 16 | lscsi_status;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2457 logit = 0;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2458
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2459 check_scsi_status:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2460 /*
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2461 * Check to see if SCSI Status is non zero. If so report SCSI
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2462 * Status.
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2463 */
80464ce86e0dbd Hannes Reinecke 2020-11-25 2464 if (lscsi_status != SAM_STAT_GOOD) {
80464ce86e0dbd Hannes Reinecke 2020-11-25 2465 if (lscsi_status == SAM_STAT_TASK_SET_FULL) {
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2466 ql_dbg(ql_dbg_io, fcport->vha, 0x3056,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2467 "QUEUE FULL detected.\n");
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2468 logit = 1;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2469 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2470 }
80464ce86e0dbd Hannes Reinecke 2020-11-25 2471 if (lscsi_status != SAM_STAT_CHECK_CONDITION)
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2472 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2473
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2474 memset(cp->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE);
80464ce86e0dbd Hannes Reinecke 2020-11-25 2475 if (!(scsi_status & SS_SENSE_LEN_VALID))
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2476 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2477
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2478 qlafx00_handle_sense(sp, sense_data, par_sense_len,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2479 sense_len, rsp, res);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2480 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2481 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2482
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2483 case CS_PORT_LOGGED_OUT:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2484 case CS_PORT_CONFIG_CHG:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2485 case CS_PORT_BUSY:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2486 case CS_INCOMPLETE:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2487 case CS_PORT_UNAVAILABLE:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2488 case CS_TIMEOUT:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2489 case CS_RESET:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2490
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2491 /*
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2492 * We are going to have the fc class block the rport
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2493 * while we try to recover so instruct the mid layer
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2494 * to requeue until the class decides how to handle this.
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2495 */
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2496 res = DID_TRANSPORT_DISRUPTED << 16;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2497
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2498 ql_dbg(ql_dbg_io, fcport->vha, 0x3057,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2499 "Port down status: port-state=0x%x.\n",
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2500 atomic_read(&fcport->state));
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2501
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2502 if (atomic_read(&fcport->state) == FCS_ONLINE)
3c75ad1d87c7d2 Himanshu Madhani 2019-12-17 2503 qla2x00_mark_device_lost(fcport->vha, fcport, 1);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2504 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2505
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2506 case CS_ABORTED:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2507 res = DID_RESET << 16;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2508 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2509
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2510 default:
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2511 res = DID_ERROR << 16;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2512 break;
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2513 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2514
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2515 if (logit)
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2516 ql_dbg(ql_dbg_io, fcport->vha, 0x3058,
9cb78c16f5dade Hannes Reinecke 2014-06-25 2517 "FCP command status: 0x%x-0x%x (0x%x) nexus=%ld:%d:%llu "
7b8335589035b4 Oleksandr Khoshaba 2013-08-27 2518 "tgt_id: 0x%x lscsi_status: 0x%x cdb=%10phN len=0x%x "
c3ff356d082759 Bart Van Assche 2015-07-09 2519 "rsp_info=%p resid=0x%x fw_resid=0x%x sense_len=0x%x, "
7b8335589035b4 Oleksandr Khoshaba 2013-08-27 2520 "par_sense_len=0x%x, rsp_info_len=0x%x\n",
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2521 comp_status, scsi_status, res, vha->host_no,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2522 cp->device->id, cp->device->lun, fcport->tgt_id,
7b8335589035b4 Oleksandr Khoshaba 2013-08-27 2523 lscsi_status, cp->cmnd, scsi_bufflen(cp),
c3ff356d082759 Bart Van Assche 2015-07-09 2524 rsp_info, resid_len, fw_resid_len, sense_len,
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2525 par_sense_len, rsp_info_len);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2526
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2527 if (rsp->status_srb == NULL)
25ff6af10562cf Joe Carnuccio 2017-01-19 2528 sp->done(sp, res);
88263208dd2332 Bart Van Assche 2019-08-08 2529 else
88263208dd2332 Bart Van Assche 2019-08-08 2530 WARN_ON_ONCE(true);
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2531 }
8ae6d9c7eb1004 Giridhar Malavali 2013-03-28 2532
:::::: The code at line 2320 was first introduced by commit
:::::: 8ae6d9c7eb1004bc134813287010d57a863ba13b [SCSI] qla2xxx: Enhancements to support ISPFx00.
:::::: TO: Giridhar Malavali <giridhar.malavali@qlogic.com>
:::::: 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: 33813 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-04-21 21:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-21 21:31 [hare-scsi-devel:scsi-result-rework 106/146] drivers/scsi/qla2xxx/qla_mr.c:2320:21: sparse: sparse: incorrect type in argument 5 (different base types) 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.