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/commi...
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(a)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(a)qlogic.com>
:::::: CC: James Bottomley <JBottomley(a)Parallels.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org