]> git.karo-electronics.de Git - karo-tx-linux.git/commit
qla2xxx: Enable >= 24xx target-mode support in SCSI LLD
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 8 Mar 2012 22:25:00 +0000 (14:25 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sun, 15 Apr 2012 00:42:40 +0000 (17:42 -0700)
commitcecd00f251b6f71f3a8d6a1d33dcf8f24969cf09
treea29fad34667ad7ebe5ffc09ac408eaba8028c0cc
parent0970147719e31f1344f0c132bc431fb4bb942b3a
qla2xxx: Enable >= 24xx target-mode support in SCSI LLD

This patch enables target mode support within the existing qla2xxx
LLD using qla_target.c logic.  This includes the following changes:

*) 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/ qla_tgt_* 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().

More specific checks for qla_hw_data->qla2x_tmpl include:

*) control plane:

qla_init.c:qla2x00_rport_del() -> qla_tgt_fc_port_deleted()
qla_init.c:qla2x00_reg_remote_port() -> qla_tgt_fc_port_added()

*) I/O path:

qla_isr.c:qla2x00_async_event() -> qla_tgt_async_event()
qla_isr.c:qla2x00_process_response_queue() ->
qla_tgt_response_pkt_all_vps()
qla_isr.c:qla24xx_process_response_queue() ->
qla_tgt_response_pkt_all_vps()

*) interrupt handlers:

qla_isr.c:qla24xx_intr_handler() -> qla_tgt_24xx_process_atio_queue() +
                                    qla24xx_process_response_queue()
qla24xx_msix_default(): qla_tgt_24xx_process_atio_queue() +
                        qla24xx_process_response_queue()

(nab: Drop legacy qla_init.c:qla2x00_device_resync() target usage +
      qla2xxx: Fix port database pointer ref for !IS_FWI2_CAPABLE (DanC) +
      drop qla2x00_get_port_database() for changes fcport->port_type assignment +
      update qla_tgt_handle_srr_work for v3.5 target usage)

Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
Cc: Arun Easi <arun.easi@qlogic.com>
Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: James Bottomley <JBottomley@Parallels.com>
Cc: Roland Dreier <roland@purestorage.com>
Cc: Joern Engel <joern@logfs.org>
Cc: Madhuranath Iyengar <mni@risingtidesystems.com>
Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org>
13 files changed:
drivers/scsi/qla2xxx/qla_attr.c
drivers/scsi/qla2xxx/qla_dbg.c
drivers/scsi/qla2xxx/qla_dbg.h
drivers/scsi/qla2xxx/qla_def.h
drivers/scsi/qla2xxx/qla_gbl.h
drivers/scsi/qla2xxx/qla_gs.c
drivers/scsi/qla2xxx/qla_init.c
drivers/scsi/qla2xxx/qla_iocb.c
drivers/scsi/qla2xxx/qla_isr.c
drivers/scsi/qla2xxx/qla_mbx.c
drivers/scsi/qla2xxx/qla_mid.c
drivers/scsi/qla2xxx/qla_os.c
drivers/scsi/qla2xxx/qla_target.c