linux-stable/drivers/scsi/qla2xxx
Nicholas Bellinger 2d70c103fd [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series
Add LLD target mode for >= 24xx series HW.  This code was originally based on
external qla2x00t module based on 8.02.01-k4, and has been refactored to
push the bulk of code into mainline qla2xxx.ko LLD -> qla_target.c.

The implementation uses internal workqueues for I/O context submission
into tcm_qla2xxx code, and includes the struct qla_tgt_func_tmpl API for
external interaction to allow qla2xxx LDD to function without direct
target-core dependencies:

It also enables qla_target.c usage within existing qla2xxx LLD code.
This includes:

*) Addition of target mode specific members to existing data
structures in qla_def.h and struct qla_hw_data->tgt_ops using
qla_target.h:struct qla_tgt_func_tmpl

*) Addition of struct qla_tgt_func_tmpl and direct calls into
qla_target.c logic w/ qlt_* prefixed functions.

*) Addition of qla_iocb.c:qla2x00_req_pkt() for ring processing, and
qla2x00_issue_marker() for handling request/response queue processing
for target mode operation

*) Addition of various qla_tgt_mode_enabled() logic checks in
qla24xx_nvram_config(), qla2x00_initialize_adapter(), qla2x00_rff_id(),
qla2x00_abort_isp(), qla24xx_modify_vp_config(), and
qla2x00_vp_abort_isp().

By default the new qlini_mode module parameter is setting initiator-mode
to 'enabled' in order for 'modprobe qla2xxx' to continue to function as
expected in initiator only mode.  Enabling target-mode operation will
currently require a:

    modprobe qla2xxx qlini_mode="disabled"

in order to explictly disabled initiator mode and allow target-mode
to be enabled via tcm_qla2xxx configfs fabric callers.

(nab: Convert to qlini_mode='enabled' by default in qla_target.c)
(joern: Remove loop_id from qla_tgt_make_local_sess() arguments +
        Remove unused s_id + fix s_id endianness bug +
        simplify qla_tgt_abort_work)
(gerard: fix section __exit mismatch in qla_tgt_exit)
(arun: Capture ATIO queue during firmware dump + Send SCR in target mode +
       Target mode review comments)
(roland: Don't create duplicate target sessions to address tearing down
         ACLs with IO in flight + Add missing call to qlt_fc_port_deleted
	 call during qla2x00_schedule_rport_del timeout)

Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-05-22 11:47:51 +01:00
..
Kconfig
Makefile [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_attr.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_bsg.c [SCSI] Revert "qla2xxx: During loopdown perform Diagnostic loopback." 2012-05-22 11:47:01 +01:00
qla_bsg.h [SCSI] qla2xxx: Provide method for updating I2C attached VPD. 2011-08-29 00:14:57 -07:00
qla_dbg.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_dbg.h [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_def.h [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_devtbl.h
qla_dfs.c [SCSI] qla2xxx: Enhancements to support ISP83xx. 2012-02-19 08:11:11 -06:00
qla_fw.h [SCSI] qla2xxx: Enhancements to support ISP83xx. 2012-02-19 08:11:11 -06:00
qla_gbl.h [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_gs.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_init.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_inline.h [SCSI] qla2xxx: Add ha->max_fibre_devices to keep track of the maximum number of targets. 2012-02-19 08:33:13 -06:00
qla_iocb.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_isr.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_mbx.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_mid.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_nx.c [SCSI] qla2xxx: Display proper firmware version when new minidump template is gathered for ISP82xx. 2012-05-22 11:45:15 +01:00
qla_nx.h [SCSI] qla2xxx: Corrections to log messages. 2012-05-22 11:39:52 +01:00
qla_os.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_settings.h [SCSI] qla2xxx: Update copyright banner. 2011-05-01 10:07:23 -05:00
qla_sup.c [SCSI] qla2xxx: Block flash access from application when device is initialized for ISP82xx. 2012-05-10 08:10:58 +01:00
qla_target.c [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_target.h [SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series 2012-05-22 11:47:51 +01:00
qla_version.h [SCSI] qla2xxx: Update version number to 8.04.00.03-k. 2012-05-10 08:19:10 +01:00