Skip to content

Commit

Permalink
qla2xxx: Don't crash if we can't find cmd for failed CTIO
Browse files Browse the repository at this point in the history
In qlt_do_ctio_completion(), there's no point in calling
qlt_term_ctio_exchange() with a NULL cmd -- all that it does is crash
in a NULL pointer dereference, since it does

	qlt_send_term_exchange(vha, cmd, &cmd->atio, 1);

and dereferencing &cmd->atio is a bad idea if cmd itself is NULL.

If we really need to do this, we could take the values from the
failed CTIO we're processing, but it's not clear if it's worth
the replumbing to do that.

Signed-off-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
  • Loading branch information
Roland Dreier authored and Nicholas Bellinger committed Jun 13, 2012
1 parent 3578ddb commit 092e1dc
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions drivers/scsi/qla2xxx/qla_target.c
Original file line number Diff line number Diff line change
Expand Up @@ -2477,11 +2477,9 @@ static void qlt_do_ctio_completion(struct scsi_qla_host *vha, uint32_t handle,
}

cmd = qlt_ctio_to_cmd(vha, handle, ctio);
if (cmd == NULL) {
if (status != CTIO_SUCCESS)
qlt_term_ctio_exchange(vha, ctio, NULL, status);
if (cmd == NULL)
return;
}

se_cmd = &cmd->se_cmd;
tfo = se_cmd->se_tfo;

Expand Down

0 comments on commit 092e1dc

Please sign in to comment.