Re: [PATCH v2 04/10] qla2xxx: Reset reserved field in firmware options to 0.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux