[v1,1/1] net/octeontx2: fix VF index in VF action

Message ID 20191029175059.17537-1-vattunuru@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Jerin Jacob
Headers
Series [v1,1/1] net/octeontx2: fix VF index in VF action |

Checks

Context Check Description
ci/Intel-compilation fail Compilation issues
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-compilation success Compile Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/checkpatch success coding style OK

Commit Message

Vamsi Krishna Attunuru Oct. 29, 2019, 5:50 p.m. UTC
  From: Vamsi Attunuru <vattunuru@marvell.com>

VF index needs to be checked against maxvf count
before incrementing it for preparing pf_func.

Fixes: 520270d518 ("net/octeontx2: support PF and VF action")

Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
---
 drivers/net/octeontx2/otx2_flow_parse.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Jerin Jacob Oct. 30, 2019, 1:55 p.m. UTC | #1
On Tue, Oct 29, 2019 at 11:50 PM <vattunuru@marvell.com> wrote:
>
> From: Vamsi Attunuru <vattunuru@marvell.com>
>
> VF index needs to be checked against maxvf count
> before incrementing it for preparing pf_func.
>
> Fixes: 520270d518 ("net/octeontx2: support PF and VF action")
Cc: stable@dpdk.rog

> Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>

Acked-by: Jerin Jacob <jerinj@marvell.com>

Applied to dpdk-next-net-mrvl/master. Thanks


> ---
>  drivers/net/octeontx2/otx2_flow_parse.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/octeontx2/otx2_flow_parse.c b/drivers/net/octeontx2/otx2_flow_parse.c
> index 2cba0a4..6b2617b 100644
> --- a/drivers/net/octeontx2/otx2_flow_parse.c
> +++ b/drivers/net/octeontx2/otx2_flow_parse.c
> @@ -833,14 +833,14 @@ otx2_flow_parse_actions(struct rte_eth_dev *dev,
>                                 actions->conf;
>                         req_act |= OTX2_FLOW_ACT_VF;
>                         if (vf_act->original == 0) {
> -                               vf_id = (vf_act->id & RVU_PFVF_FUNC_MASK) + 1;
> +                               vf_id = vf_act->id & RVU_PFVF_FUNC_MASK;
>                                 if (vf_id  >= hw->maxvf) {
>                                         errmsg = "invalid vf specified";
>                                         errcode = EINVAL;
>                                         goto err_exit;
>                                 }
>                                 pf_func &= (0xfc00);
> -                               pf_func = (pf_func | vf_id);
> +                               pf_func = (pf_func | (vf_id + 1));
>                         }
>                         break;
>
> --
> 2.8.4
>
  

Patch

diff --git a/drivers/net/octeontx2/otx2_flow_parse.c b/drivers/net/octeontx2/otx2_flow_parse.c
index 2cba0a4..6b2617b 100644
--- a/drivers/net/octeontx2/otx2_flow_parse.c
+++ b/drivers/net/octeontx2/otx2_flow_parse.c
@@ -833,14 +833,14 @@  otx2_flow_parse_actions(struct rte_eth_dev *dev,
 				actions->conf;
 			req_act |= OTX2_FLOW_ACT_VF;
 			if (vf_act->original == 0) {
-				vf_id = (vf_act->id & RVU_PFVF_FUNC_MASK) + 1;
+				vf_id = vf_act->id & RVU_PFVF_FUNC_MASK;
 				if (vf_id  >= hw->maxvf) {
 					errmsg = "invalid vf specified";
 					errcode = EINVAL;
 					goto err_exit;
 				}
 				pf_func &= (0xfc00);
-				pf_func = (pf_func | vf_id);
+				pf_func = (pf_func | (vf_id + 1));
 			}
 			break;