qla2xxx: Enable SLER conditionally in target mode.

Sequence level error recovery (aka FC Tape) is not really required
for disk devices. On heavily loaded system, with slow turn around,
a bunch of status enquiries using REC puts additional burden to the
target, so just turn off SLER by default.

Signed-off-by: Arun Easi <arun.easi@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Arun Easi 2014-09-25 06:14:48 -04:00 committed by Christoph Hellwig
parent 667024a365
commit d154f35029

View File

@ -42,6 +42,11 @@
#include "qla_def.h" #include "qla_def.h"
#include "qla_target.h" #include "qla_target.h"
static int ql2xtgt_tape_enable;
module_param(ql2xtgt_tape_enable, int, S_IRUGO|S_IWUSR);
MODULE_PARM_DESC(ql2xtgt_tape_enable,
"Enables Sequence level error recovery (aka FC Tape). Default is 0 - no SLER. 1 - Enable SLER.");
static char *qlini_mode = QLA2XXX_INI_MODE_STR_ENABLED; static char *qlini_mode = QLA2XXX_INI_MODE_STR_ENABLED;
module_param(qlini_mode, charp, S_IRUGO); module_param(qlini_mode, charp, S_IRUGO);
MODULE_PARM_DESC(qlini_mode, MODULE_PARM_DESC(qlini_mode,
@ -5172,8 +5177,13 @@ qlt_24xx_config_nvram_stage1(struct scsi_qla_host *vha, struct nvram_24xx *nv)
nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_13); nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_13);
/* Enable initial LIP */ /* Enable initial LIP */
nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_9); nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_9);
/* Enable FC tapes support */ if (ql2xtgt_tape_enable)
nv->firmware_options_2 |= __constant_cpu_to_le32(BIT_12); /* Enable FC Tape support */
nv->firmware_options_2 |= cpu_to_le32(BIT_12);
else
/* Disable FC Tape support */
nv->firmware_options_2 &= cpu_to_le32(~BIT_12);
/* Disable Full Login after LIP */ /* Disable Full Login after LIP */
nv->host_p &= __constant_cpu_to_le32(~BIT_10); nv->host_p &= __constant_cpu_to_le32(~BIT_10);
/* Enable target PRLI control */ /* Enable target PRLI control */
@ -5255,8 +5265,13 @@ qlt_81xx_config_nvram_stage1(struct scsi_qla_host *vha, struct nvram_81xx *nv)
nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_13); nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_13);
/* Enable initial LIP */ /* Enable initial LIP */
nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_9); nv->firmware_options_1 &= __constant_cpu_to_le32(~BIT_9);
/* Enable FC tapes support */ if (ql2xtgt_tape_enable)
nv->firmware_options_2 |= __constant_cpu_to_le32(BIT_12); /* Enable FC tape support */
nv->firmware_options_2 |= cpu_to_le32(BIT_12);
else
/* Disable FC tape support */
nv->firmware_options_2 &= cpu_to_le32(~BIT_12);
/* Disable Full Login after LIP */ /* Disable Full Login after LIP */
nv->host_p &= __constant_cpu_to_le32(~BIT_10); nv->host_p &= __constant_cpu_to_le32(~BIT_10);
/* Enable target PRLI control */ /* Enable target PRLI control */