linux/drivers/scsi/qla2xxx
Dr. Greg Wettstein 6f58c780e5 qla2xxx: Fix kernel panic on selective retransmission request
A selective retransmission request (SRR) is a fibre-channel
protocol control request which provides support for requesting
retransmission of a data sequence in response to an issue such as
frame loss or corruption.  These events are experienced
infrequently in fibre-channel based networks which makes
it difficult to test and assess codepaths which handle these
events.

We were fortunate enough, for some definition of fortunate, to
have a metro-area single-mode SAN link which, at 10 GBPS
sustained load levels, would consistently generate SRR's in
a SCST based target implementation using our SCST/in-kernel
Qlogic target interface driver.  In response to an SRR the
in-kernel Qlogic target driver immediately panics resulting
in a catastrophic storage failure for serviced initiators.

The culprit was a debug statement in the qla_target.c file which
does not verify that a pointer to the SCSI CDB is not null.
The unchecked pointer dereference results in the kernel panic
and resultant system failure.

The other two references to the SCSI CDB by the SRR handling code
use a ternary operator to verify a non-null pointer is being
acted on.  This patch simply adds a similar test to the implicated
debug statement.

This patch is a candidate for any stable kernel being maintained
since it addresses a potentially catastrophic event with
minimal downside.

Signed-off-by: Dr. Greg Wettstein <greg@enjellic.com>
Cc: <stable@vger.kernel.org> #3.5+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2014-02-24 13:34:18 -08:00
..
Kconfig [SCSI] qla2xxx: Update firmware link in Kconfig file. 2013-05-10 07:47:53 -07:00
Makefile [SCSI] qla2xxx: Add support for ISP8044. 2013-09-03 07:28:00 -07:00
qla_attr.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2014-01-31 15:31:23 -08:00
qla_bsg.c [SCSI] qla2xxx: Add BSG interface for read/write serdes register. 2013-12-19 07:38:58 -08:00
qla_bsg.h [SCSI] qla2xxx: Add BSG interface for read/write serdes register. 2013-12-19 07:38:58 -08:00
qla_dbg.c [SCSI] qla2xxx: Add changes to obtain ISPFX00 adapters product information in accordance with firmware update. 2013-12-19 07:38:59 -08:00
qla_dbg.h [SCSI] qla2xxx: Update the copyright information. 2013-02-22 12:49:22 +00:00
qla_def.h Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2014-01-31 15:31:23 -08:00
qla_devtbl.h
qla_dfs.c [SCSI] qla2xxx: Update the copyright information. 2013-02-22 12:49:22 +00:00
qla_fw.h [SCSI] qla2xxx: Add support for ISP8044. 2013-09-03 07:28:00 -07:00
qla_gbl.h [SCSI] qla2xxx: Fix warning reported by smatch. 2013-12-19 07:39:03 -08:00
qla_gs.c [SCSI] qla2xxx: Add missing FCP statistics to sysfs interface. 2013-09-03 07:28:04 -07:00
qla_init.c [SCSI] qla2xxx: Honor execute firmware failures. 2013-12-19 07:38:56 -08:00
qla_inline.h [SCSI] Revert "qla2xxx: Ramp down queue depth for attached SCSI devices when driver resources are low." 2013-12-19 07:38:57 -08:00
qla_iocb.c [SCSI] qla2xxx: Add missing FCP statistics to sysfs interface. 2013-09-03 07:28:04 -07:00
qla_isr.c [SCSI] qla2xxx: Only complete dcbx_comp and lb_portup_comp for virtual port index 0. 2013-12-19 07:39:00 -08:00
qla_mbx.c [SCSI] qla2xxx: Add BSG interface for read/write serdes register. 2013-12-19 07:38:58 -08:00
qla_mid.c [SCSI] qla2xxx: Correct multiqueue offset calculations. 2013-09-03 07:28:01 -07:00
qla_mr.c [SCSI] qla2xxx: Add changes to obtain ISPFX00 adapters product information in accordance with firmware update. 2013-12-19 07:38:59 -08:00
qla_mr.h [SCSI] qla2xxx: Replace a constant with a macro definition for host->canqueue assigmnment. 2013-12-19 07:39:01 -08:00
qla_nx2.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-01-22 21:21:55 -08:00
qla_nx2.h [SCSI] qla2xxx: Add support for ISP8044. 2013-09-03 07:28:00 -07:00
qla_nx.c [SCSI] qla2xxx: Fix warning reported by smatch. 2013-12-19 07:39:03 -08:00
qla_nx.h [SCSI] qla2xxx: Add support for ISP8044. 2013-09-03 07:28:00 -07:00
qla_os.c [SCSI] qla2xxx: Fix warning reported by smatch. 2013-12-19 07:39:03 -08:00
qla_settings.h [SCSI] qla2xxx: Update the copyright information. 2013-02-22 12:49:22 +00:00
qla_sup.c [SCSI] qla2xxx: Correction to message ids. 2013-09-03 07:28:07 -07:00
qla_target.c qla2xxx: Fix kernel panic on selective retransmission request 2014-02-24 13:34:18 -08:00
qla_target.h qla2xxx: Check + fail when npiv_vports_inuse exists in shutdown 2014-02-20 13:01:17 -08:00
qla_version.h [SCSI] qla2xxx: Update the driver version to 8.06.00.12-k. 2013-12-19 07:39:01 -08:00
tcm_qla2xxx.c tcm_qla2xxx: Fix NAA formatted name for NPIV WWPNs 2014-02-20 13:01:17 -08:00
tcm_qla2xxx.h tcm_qla2xxx: Fix NAA formatted name for NPIV WWPNs 2014-02-20 13:01:17 -08:00