[Intel-wired-lan] [PATCH] i40evf: remove redundant array comparisons to 0 checks

Ramamurthy, Harshitha harshitha.ramamurthy at intel.com
Thu Feb 15 22:39:49 UTC 2018


On Thu, 2018-02-15 at 19:42 +0000, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
> 
> The checks to see if key->dst.s6_addr and key->src.s6_addr are null
> pointers are redundant because these are constant size arrays and
> so the checks always return true.  Fix this by removing the redundant
> checks.
> 
> Detected by CoverityScan, CID#1465279 ("Array compared to 0")
> 
> Signed-off-by: Colin Ian King <colin.king at canonical.com>

Acked-by: Harshitha Ramamurthy <harshitha.ramamurthy at intel.com>
> ---
>  drivers/net/ethernet/intel/i40evf/i40evf_main.c | 25 +++++++++++--
> ------------
>  1 file changed, 11 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> index 4955ce3ab6a2..63e4169828ea 100644
> --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
> @@ -2710,22 +2710,19 @@ static int i40evf_parse_cls_flower(struct
> i40evf_adapter *adapter,
>  		if (!ipv6_addr_any(&mask->dst) ||
> !ipv6_addr_any(&mask->src))
>  			field_flags |= I40EVF_CLOUD_FIELD_IIP;
>  
> -		if (key->dst.s6_addr) {
> -			for (i = 0; i < 4; i++)
> -				filter->f.mask.tcp_spec.dst_ip[i] |=
> +		for (i = 0; i < 4; i++)
> +			filter->f.mask.tcp_spec.dst_ip[i] |=
>  							cpu_to_be32(
> 0xffffffff);
> -			memcpy(&filter->f.data.tcp_spec.dst_ip,
> -			       &key->dst.s6_addr32,
> -			       sizeof(filter-
> >f.data.tcp_spec.dst_ip));
> -		}
> -		if (key->src.s6_addr) {
> -			for (i = 0; i < 4; i++)
> -				filter->f.mask.tcp_spec.src_ip[i] |=
> +		memcpy(&filter->f.data.tcp_spec.dst_ip,
> +		       &key->dst.s6_addr32,
> +		       sizeof(filter->f.data.tcp_spec.dst_ip));
> +
> +		for (i = 0; i < 4; i++)
> +			filter->f.mask.tcp_spec.src_ip[i] |=
>  							cpu_to_be32(
> 0xffffffff);
> -			memcpy(&filter->f.data.tcp_spec.src_ip,
> -			       &key->src.s6_addr32,
> -			       sizeof(filter-
> >f.data.tcp_spec.src_ip));
> -		}
> +		memcpy(&filter->f.data.tcp_spec.src_ip,
> +		       &key->src.s6_addr32,
> +		       sizeof(filter->f.data.tcp_spec.src_ip));
>  	}
>  	if (dissector_uses_key(f->dissector,
> FLOW_DISSECTOR_KEY_PORTS)) {
>  		struct flow_dissector_key_ports *key =


More information about the Intel-wired-lan mailing list