On Wed, 2016-12-21 at 13:57 -0800, Himanshu Madhani wrote: > During NVRAM initialization in target mode, reset reserved > fields in firmware options to Zero (BIT 15) > > Signed-off-by: Himanshu Madhani <himanshu.madhani@xxxxxxxxxx> > Signed-off-by: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx> > --- > drivers/scsi/qla2xxx/qla_target.c | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c > index b9c559c..5037b51 100644 > --- a/drivers/scsi/qla2xxx/qla_target.c > +++ b/drivers/scsi/qla2xxx/qla_target.c > @@ -6539,6 +6539,14 @@ static void qlt_disable_vha(struct scsi_qla_host *vha) > > /* Disable Full Login after LIP */ > nv->host_p &= cpu_to_le32(~BIT_10); > + > + /* > + * clear BIT 15 explicitly as we have seen at least > + * a couple of instances where this was set and this > + * was causing the firmware to not be initialized. > + */ > + nv->firmware_options_1 &= > + __constant_cpu_to_le32(~BIT_15); > /* Enable target PRLI control */ > nv->firmware_options_2 |= cpu_to_le32(BIT_14); > } else { > @@ -6623,11 +6631,18 @@ static void qlt_disable_vha(struct scsi_qla_host *vha) > /* Disable ini mode, if requested */ > if (!qla_ini_mode_enabled(vha)) > nv->firmware_options_1 |= cpu_to_le32(BIT_5); > - > /* Disable Full Login after LIP */ > nv->firmware_options_1 &= cpu_to_le32(~BIT_13); > /* Enable initial LIP */ > nv->firmware_options_1 &= cpu_to_le32(~BIT_9); > + /* > + * clear BIT 15 explicitly as we have seen at > + * least a couple of instances where this was set > + * and this was causing the firmware to not be > + * initialized. > + */ > + nv->firmware_options_1 &= > + __constant_cpu_to_le32(~BIT_15); > if (ql2xtgt_tape_enable) > /* Enable FC tape support */ > nv->firmware_options_2 |= cpu_to_le32(BIT_12); Hello Himanshu, Please use cpu_to_le32() in new code instead of __constant_cpu_to_le32(). gcc generates the same code for both conversion functions but the former function makes source code easier to read. Bart.��.n��������+%������w��{.n�����{������ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f