From: Manish Rangankar Date: Tue, 24 Apr 2012 05:32:33 +0000 (-0700) Subject: [SCSI] qla4xxx: Fix kernel panic during discovery logout. X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=3d948e2a21ed8641a84ad437d2544b215d747916;p=deliverable%2Flinux.git [SCSI] qla4xxx: Fix kernel panic during discovery logout. Update the session and connection parameter before sending connection logged in event to iscsiadm because in some scenario logout may come in just after we send the logged in event to user, which free up session, connection and ddb, but DPC is still updating session and connect parameter which can lead to panic. Signed-off-by: Manish Rangankar Signed-off-by: Vikas Chaudhary Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/qla4xxx/ql4_init.c b/drivers/scsi/qla4xxx/ql4_init.c index 90ee5d8fa731..05484364010e 100644 --- a/drivers/scsi/qla4xxx/ql4_init.c +++ b/drivers/scsi/qla4xxx/ql4_init.c @@ -884,8 +884,8 @@ int qla4xxx_ddb_change(struct scsi_qla_host *ha, uint32_t fw_ddb_index, switch (state) { case DDB_DS_SESSION_ACTIVE: case DDB_DS_DISCOVERY: - ddb_entry->unblock_sess(ddb_entry->sess); qla4xxx_update_session_conn_param(ha, ddb_entry); + ddb_entry->unblock_sess(ddb_entry->sess); status = QLA_SUCCESS; break; case DDB_DS_SESSION_FAILED: @@ -897,6 +897,7 @@ int qla4xxx_ddb_change(struct scsi_qla_host *ha, uint32_t fw_ddb_index, } break; case DDB_DS_SESSION_ACTIVE: + case DDB_DS_DISCOVERY: switch (state) { case DDB_DS_SESSION_FAILED: /*