forked from luck/tmp_suning_uos_patched
scsi: qedf: Check for port type and role before processing an event
The rport lock gets initialized during offload. If a non-FCP or non-target rport got logout then this rport will be uninitialized. KASAN was complaining because of it. ========= [ 14.384434] the code is fine but needs lockdep annotation. [ 14.384482] turning off the locking correctness validator. ======== Link: https://lore.kernel.org/r/20200807110656.19965-2-jhasan@marvell.com Signed-off-by: Saurav Kashyap <skashyap@marvell.com> Signed-off-by: Javed Hasan <jhasan@marvell.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
68bdb3db6c
commit
a521bbc38d
|
@ -1558,6 +1558,17 @@ static void qedf_rport_event_handler(struct fc_lport *lport,
|
||||||
if (port_id == FC_FID_DIR_SERV)
|
if (port_id == FC_FID_DIR_SERV)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
if (rdata->spp_type != FC_TYPE_FCP) {
|
||||||
|
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_DISC,
|
||||||
|
"No action since spp type isn't FCP\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!(rdata->ids.roles & FC_RPORT_ROLE_FCP_TARGET)) {
|
||||||
|
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_DISC,
|
||||||
|
"Not FCP target so no action\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (!rport) {
|
if (!rport) {
|
||||||
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_DISC,
|
QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_DISC,
|
||||||
"port_id=%x - rport notcreated Yet!!\n", port_id);
|
"port_id=%x - rport notcreated Yet!!\n", port_id);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user