|
@@ -1328,10 +1328,9 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
|
|
|
qla2x00_sp_compl(ha, sp);
|
|
|
} else {
|
|
|
ctx = sp->ctx;
|
|
|
- if (ctx->type == SRB_LOGIN_CMD ||
|
|
|
- ctx->type == SRB_LOGOUT_CMD) {
|
|
|
- ctx->u.iocb_cmd->free(sp);
|
|
|
- } else {
|
|
|
+ if (ctx->type == SRB_ELS_CMD_RPT ||
|
|
|
+ ctx->type == SRB_ELS_CMD_HST ||
|
|
|
+ ctx->type == SRB_CT_CMD) {
|
|
|
struct fc_bsg_job *bsg_job =
|
|
|
ctx->u.bsg_job;
|
|
|
if (bsg_job->request->msgcode
|
|
@@ -1343,6 +1342,8 @@ qla2x00_abort_all_cmds(scsi_qla_host_t *vha, int res)
|
|
|
kfree(sp->ctx);
|
|
|
mempool_free(sp,
|
|
|
ha->srb_mempool);
|
|
|
+ } else {
|
|
|
+ ctx->u.iocb_cmd->free(sp);
|
|
|
}
|
|
|
}
|
|
|
}
|