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@xxxxxxxxxx> > Signed-off-by: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html Reviewed-by: Johannes Thumshirn <jthumshirn@xxxxxxx> -- Johannes Thumshirn Storage jthumshirn@xxxxxxx +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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html