Re: [PATCH v2 03/11] qla2xxx: Allow fw to hold status before sending ABTS response.

Johannes Thumshirn
2016-01-28T08:35:42Z

On Wed, Jan 27, 2016 at 12:03:30PM -0500, Himanshu Madhani wrote:
> Set bit 12 of additional firmware options 3 to let firmware
> hold status IOCB until ABTS response is received from Target.
>
> Signed-off-by: Himanshu Madhani <himanshu.madhani@qlogic.com>
> Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
> ---
> drivers/scsi/qla2xxx/qla_gbl.h | 1 +
> drivers/scsi/qla2xxx/qla_init.c | 11 ++++++++++-
> drivers/scsi/qla2xxx/qla_os.c | 7 +++++++
> 3 files changed, 18 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
> index 0103e46..1bfdcdf 100644
> --- a/drivers/scsi/qla2xxx/qla_gbl.h
> +++ b/drivers/scsi/qla2xxx/qla_gbl.h
> @@ -121,6 +121,7 @@ extern int ql2xmdcapmask;
> extern int ql2xmdenable;
> extern int ql2xexlogins;
> extern int ql2xexchoffld;
> +extern int ql2xfwholdabts;
>
> extern int qla2x00_loop_reset(scsi_qla_host_t *);
> extern void qla2x00_abort_all_cmds(scsi_qla_host_t *, int);
> diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
> index a663ff6..cf487b9 100644
> --- a/drivers/scsi/qla2xxx/qla_init.c
> +++ b/drivers/scsi/qla2xxx/qla_init.c
> @@ -2062,6 +2062,10 @@ qla24xx_update_fw_options(scsi_qla_host_t *vha)
> if (IS_P3P_TYPE(ha))
> return;
>
> + /* Hold status IOCBs until ABTS response received. */
> + if (ql2xfwholdabts)
> + ha->fw_options[3] |= BIT_12;
> +
> /* Update Serial Link options. */
> if ((le16_to_cpu(ha->fw_seriallink_options24[0]) & BIT_0) == 0)
> return;
> @@ -6410,12 +6414,17 @@ qla81xx_update_fw_options(scsi_qla_host_t *vha)
> {
> struct qla_hw_data *ha = vha->hw;
>
> + /* Hold status IOCBs until ABTS response received. */
> + if (ql2xfwholdabts)
> + ha->fw_options[3] |= BIT_12;
> +
> if (!ql2xetsenable)
> - return;
> + goto out;
>
> /* Enable ETS Burst. */
> memset(ha->fw_options, 0, sizeof(ha->fw_options));
> ha->fw_options[2] |= BIT_9;
> +out:
> qla2x00_set_fw_options(vha, ha->fw_options);
> }
>
> diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
> index f1788db..d94a236 100644
> --- a/drivers/scsi/qla2xxx/qla_os.c
> +++ b/drivers/scsi/qla2xxx/qla_os.c
> @@ -233,6 +233,13 @@ MODULE_PARM_DESC(ql2xexchoffld,
> "Number of exchanges to offload. "
> "0 (Default)- Disabled.");
>
> +int ql2xfwholdabts = 0;
> +module_param(ql2xfwholdabts, int, S_IRUGO);
> +MODULE_PARM_DESC(ql2xfwholdabts,
> + "Allow FW to hold status IOCB until ABTS rsp received. "
> + "0 (Default) Do not set fw option. "
> + "1 - Set fw option to hold ABTS.");
> +
> /*
> * SCSI host template entry points
> */
> --
> 1.7.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
--
Johannes Thumshirn Storage
jthumshirn@suse.de +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html