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
..
2011-03-31 11:26:23 -03:00
2012-03-28 15:58:21 -07:00
2012-03-22 12:55:29 -07:00
2011-07-26 16:49:47 -07:00
2012-05-10 08:59:26 +01:00
2012-05-21 12:17:30 +01:00
2012-03-22 12:55:29 -07:00
2012-03-31 13:31:23 -07:00
2011-09-26 09:28:58 -05:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2012-03-31 13:31:23 -07:00
2011-03-31 11:26:23 -03:00
2012-03-28 18:30:03 +01:00
2011-05-01 10:22:40 -05:00
2011-03-31 11:26:23 -03:00
2012-03-28 18:30:03 +01:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2011-03-31 11:26:23 -03:00
2012-03-28 15:09:28 +01:00
2011-03-31 11:26:23 -03:00
2012-01-02 13:04:55 +01:00
2012-04-23 23:16:56 +01:00
2012-03-22 12:55:29 -07:00
2012-01-22 14:50:03 +01:00
2012-03-31 13:31:23 -07:00
2011-03-31 11:26:23 -03:00
2012-03-28 18:30:03 +01:00
2011-08-27 08:36:58 -06:00
2011-08-27 08:36:58 -06:00
2011-03-31 11:26:23 -03:00
2012-03-28 18:30:03 +01:00
2011-03-31 11:26:23 -03:00
2012-03-28 18:30:03 +01:00
2011-03-31 11:26:23 -03:00
2012-03-28 18:30:03 +01:00
2012-02-21 11:40:37 +01:00
2012-03-31 13:31:23 -07:00
2012-05-21 12:17:30 +01:00
2012-03-12 09:13:31 -07:00
2012-01-03 22:54:07 -05:00
2012-05-17 10:08:57 +01:00
2012-01-02 13:04:55 +01:00
2012-03-31 13:31:23 -07:00
2012-03-28 18:30:03 +01:00