]> git.karo-electronics.de Git - karo-tx-linux.git/commit
qla2xxx: Fix crash in qla2x00_abort_all_cmds() on unload
authorRoland Dreier <roland@purestorage.com>
Thu, 22 Sep 2011 07:06:05 +0000 (00:06 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sun, 16 Oct 2011 21:14:53 +0000 (14:14 -0700)
commitafcb5001fe569ced2da2048fcbdef9db3cb785f4
treed0dc81aa035539dad10d3c45c23e4f5b4c2281ce
parent36f1ce1fa2ee9e2d2608ca2629b8b1232b14a1dc
qla2xxx: Fix crash in qla2x00_abort_all_cmds() on unload

commit 9bfacd01dc9b7519e1e6da12b01963550b9d09a2 upstream.

I hit a crash in qla2x00_abort_all_cmds() if the qla2xxx module is
unloaded right after it is loaded.  I debugged this down to the abort
handling improperly treating a command of type SRB_ADISC_CMD as if it
had a bsg_job to complete when that command actually uses the iocb_cmd
part of the union.  (I guess to hit this one has to unload the module
while the async FC initialization is still in progress)

It seems we should only look for a bsg_job if type is SRB_ELS_CMD_RPT,
SRB_ELS_CMD_HST or SRB_CT_CMD, so switch the test to make that explicit.

Signed-off-by: Roland Dreier <roland@purestorage.com>
Acked-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/scsi/qla2xxx/qla_os.c