DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: Ajit Khaparde <ajit.khaparde@broadcom.com>, dev@dpdk.org
Cc: Stephen Hurd <stephen.hurd@broadcom.com>
Subject: Re: [dpdk-dev] [PATCH 2/8] net/bnxt: fix to avoid a segfault
Date: Thu, 20 Jul 2017 10:56:13 +0100	[thread overview]
Message-ID: <390250b1-9e64-c711-be4f-f1bf0e627a9c@intel.com> (raw)
In-Reply-To: <20170720044826.44103-4-ajit.khaparde@broadcom.com>

On 7/20/2017 5:48 AM, Ajit Khaparde wrote:
> Fix use of local variable to avoid segfault.
> cnt was incorrectly tested and decremented in the loop that removes
> a VLAN from the table.
> 
> Fixes: 36735a932ca7 ("support set VF QOS and MAC anti spoof")
> 
> Signed-off-by: Stephen Hurd <stephen.hurd@broadcom.com>
> Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> ---
>  drivers/net/bnxt/rte_pmd_bnxt.c | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/bnxt/rte_pmd_bnxt.c b/drivers/net/bnxt/rte_pmd_bnxt.c
> index 0a8fb1e..0d48873 100644
> --- a/drivers/net/bnxt/rte_pmd_bnxt.c
> +++ b/drivers/net/bnxt/rte_pmd_bnxt.c
> @@ -500,6 +500,7 @@ int rte_pmd_bnxt_set_vf_vlan_filter(uint8_t port, uint16_t vlan,
>  						continue;
>  					}
>  
> +					/* cnt is one less than vlan_count */
>  					cnt = bp->pf.vf_info[i].vlan_count++;
>  					/*
>  					 * And finally, add to the
> @@ -511,19 +512,19 @@ int rte_pmd_bnxt_set_vf_vlan_filter(uint8_t port, uint16_t vlan,
>  					ve->vid = rte_cpu_to_be_16(vlan);
>  				}
>  			} else {
> -				for (j = 0; cnt; j++) {
> +				for (j = 0; j < cnt; j++) {
>  					if (rte_be_to_cpu_16(
> -					bp->pf.vf_info[i].vlan_table[j].vid) !=
> -					    vlan)
> +					 bp->pf.vf_info[i].vlan_table[j].vid) !=
> +					 vlan)
>  						continue;
>  					memmove(
> -					 &bp->pf.vf_info[i].vlan_table[j],
> -					 &bp->pf.vf_info[i].vlan_table[j + 1],

I may be missing something but if &bp->pf.vf_info[i].vlan_table[j +
1].vid == vlan, this may be endless loop.

because each time vlan_table[j + 1] copied into vlan_table[j] and j--,
in next iteration same thing will happen.


> -					 getpagesize() -
> -					 ((j + 1) *
> +					    &bp->pf.vf_info[i].vlan_table[j],
> +					   &bp->pf.vf_info[i].vlan_table[j + 1],

I guess line realigned to fit into 80 characters limitation, one of the
good thing with 80 chars limitation is it forces to reduce indention.

It is up to you, but if you do following, it can be possible to reduce
the indention one level and it will be easier to fit into limit:

if.((vf_mask.&.1) == 0)
	continue;

> +					    getpagesize() -
> +					    ((j + 1) *	
>  					 sizeof(struct bnxt_vlan_table_entry)));
>  					j--;
> -					cnt = bp->pf.vf_info[i].vlan_count--;
> +					cnt = --bp->pf.vf_info[i].vlan_count;
>  				}
>  			}
>  			rte_pmd_bnxt_set_vf_vlan_anti_spoof(dev->data->port_id,
> 

  reply	other threads:[~2017-07-20  9:56 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-20  4:48 [dpdk-dev] [PATCH 0/8] bnxt patchset Ajit Khaparde
2017-07-20  4:48 ` [dpdk-dev] [PATCH 1/8] net/bnxt: fix log levels for non error conditions Ajit Khaparde
2017-07-20  4:48 ` [dpdk-dev] [PATCH 2/8] net/bnxt: fix to avoid a segfault Ajit Khaparde
2017-07-20  9:56   ` Ferruh Yigit [this message]
2017-07-20  4:48 ` [dpdk-dev] [PATCH 3/8] net/bnxt: fix vnic cleanup Ajit Khaparde
2017-07-20  4:48 ` [dpdk-dev] [PATCH 4/8] net/bnxt: fix set link config Ajit Khaparde
2017-07-20  4:48 ` [dpdk-dev] [PATCH 5/8] net/bnxt: reset VF stats during initialization Ajit Khaparde
2017-07-20  4:48 ` [dpdk-dev] [PATCH 6/8] net/bnxt: fix VLAN antispoof configuration code Ajit Khaparde
2017-07-20  4:48 ` [dpdk-dev] [PATCH 7/8] net/bnxt: check invalid l2_filter_id Ajit Khaparde
2017-07-20  4:48 ` [dpdk-dev] [PATCH 8/8] net/bnxt: fix to free a filter before reusing it Ajit Khaparde
2017-07-20 10:02 ` [dpdk-dev] [PATCH 0/8] bnxt patchset Ferruh Yigit
2017-07-21  3:22   ` [dpdk-dev] [PATCH v2 " Ajit Khaparde
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 1/8] net/bnxt: fix log levels for non error conditions Ajit Khaparde
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 2/8] net/bnxt: fix to avoid a segfault Ajit Khaparde
2017-07-21 19:09       ` Stephen Hurd
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 3/8] net/bnxt: fix vnic cleanup Ajit Khaparde
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 4/8] net/bnxt: fix set link config Ajit Khaparde
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 5/8] net/bnxt: reset VF stats during initialization Ajit Khaparde
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 6/8] net/bnxt: fix VLAN antispoof configuration code Ajit Khaparde
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 7/8] net/bnxt: check invalid l2_filter_id Ajit Khaparde
2017-07-21  3:22     ` [dpdk-dev] [PATCH v2 8/8] net/bnxt: fix to free a filter before reusing it Ajit Khaparde
2017-07-21  9:31     ` [dpdk-dev] [PATCH v2 0/8] bnxt patchset Ferruh Yigit

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=390250b1-9e64-c711-be4f-f1bf0e627a9c@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=dev@dpdk.org \
    --cc=stephen.hurd@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).