[dpdk-dev] net/i40e: fix assignment of enum values
Checks
Commit Message
From: Tomasz Kulasek <tomaszx.kulasek@intel.com>
mixed_enums: Mixing enum types enum i40e_vsi_type and enum
virtchnl_vsi_type for type
Coverity issue 158651
Fixes: a58860f68929 ("net/i40e/base: use new virtchnl header file")
Cc: jingjing.wu@intel.com
Cc: stable@dpdk.org
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
---
drivers/net/i40e/i40e_ethdev_vf.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
Comments
On 9/22/2017 1:36 PM, Michal Jastrzebski wrote:
> From: Tomasz Kulasek <tomaszx.kulasek@intel.com>
>
> mixed_enums: Mixing enum types enum i40e_vsi_type and enum
> virtchnl_vsi_type for type
>
> Coverity issue 158651
> Fixes: a58860f68929 ("net/i40e/base: use new virtchnl header file")
> Cc: jingjing.wu@intel.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
> ---
> drivers/net/i40e/i40e_ethdev_vf.c | 10 +++++++++-
> 1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
> index 73c315a..a8d2740 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -1295,7 +1295,15 @@ static int i40evf_dev_xstats_get(struct rte_eth_dev *dev,
> if (hw->mac.type == I40E_MAC_X722_VF)
> vf->flags = I40E_FLAG_RSS_AQ_CAPABLE;
> vf->vsi.vsi_id = vf->vsi_res->vsi_id;
> - vf->vsi.type = (enum i40e_vsi_type)vf->vsi_res->vsi_type;
> +
> + switch (vf->vsi_res->vsi_type) {
> + case VIRTCHNL_VSI_SRIOV:
> + vf->vsi.type = I40E_VSI_SRIOV;
> + break;
> + default:
> + vf->vsi.type = I40E_VSI_TYPE_UNKNOWN;
This changes the behavior.
Previously:
vsi_type == VIRTCHNL_VSI_TYPE_INVALID ? type = I40E_VSI_MAIN
Now:
vsi_type == VIRTCHNL_VSI_TYPE_INVALID ? type = I40E_VSI_TYPE_UNKNOWN
> + break;
> + }
> vf->vsi.nb_qps = vf->vsi_res->num_queue_pairs;
> vf->vsi.adapter = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
>
>
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Saturday, September 23, 2017 12:48 AM
> To: Jastrzebski, MichalX K <michalx.k.jastrzebski@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Jain, Deepak K <deepak.k.jain@intel.com>; Kulasek, TomaszX
> <tomaszx.kulasek@intel.com>; stable@dpdk.org
> Subject: Re: [dpdk-stable] [PATCH] net/i40e: fix assignment of enum values
>
> On 9/22/2017 1:36 PM, Michal Jastrzebski wrote:
> > From: Tomasz Kulasek <tomaszx.kulasek@intel.com>
> >
> > mixed_enums: Mixing enum types enum i40e_vsi_type and enum
> > virtchnl_vsi_type for type
> >
> > Coverity issue 158651
> > Fixes: a58860f68929 ("net/i40e/base: use new virtchnl header file")
> > Cc: jingjing.wu@intel.com
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
> > ---
> > drivers/net/i40e/i40e_ethdev_vf.c | 10 +++++++++-
> > 1 file changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
> > index 73c315a..a8d2740 100644
> > --- a/drivers/net/i40e/i40e_ethdev_vf.c
> > +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> > @@ -1295,7 +1295,15 @@ static int i40evf_dev_xstats_get(struct rte_eth_dev *dev,
> > if (hw->mac.type == I40E_MAC_X722_VF)
> > vf->flags = I40E_FLAG_RSS_AQ_CAPABLE;
> > vf->vsi.vsi_id = vf->vsi_res->vsi_id;
> > - vf->vsi.type = (enum i40e_vsi_type)vf->vsi_res->vsi_type;
> > +
> > + switch (vf->vsi_res->vsi_type) {
> > + case VIRTCHNL_VSI_SRIOV:
> > + vf->vsi.type = I40E_VSI_SRIOV;
> > + break;
> > + default:
> > + vf->vsi.type = I40E_VSI_TYPE_UNKNOWN;
>
> This changes the behavior.
>
> Previously:
> vsi_type == VIRTCHNL_VSI_TYPE_INVALID ? type = I40E_VSI_MAIN
>
> Now:
> vsi_type == VIRTCHNL_VSI_TYPE_INVALID ? type = I40E_VSI_TYPE_UNKNOWN
For vsi_type in VF, only SRIOV type is valid.
I40E_VSI_MAIN is used for PF Lan vsi, even it doesn't cause error, but
we need to translate it to correct meaning.
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
On 9/23/2017 3:05 AM, Wu, Jingjing wrote:
>
>
>> -----Original Message-----
>> From: Yigit, Ferruh
>> Sent: Saturday, September 23, 2017 12:48 AM
>> To: Jastrzebski, MichalX K <michalx.k.jastrzebski@intel.com>; Wu, Jingjing
>> <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
>> Cc: dev@dpdk.org; Jain, Deepak K <deepak.k.jain@intel.com>; Kulasek, TomaszX
>> <tomaszx.kulasek@intel.com>; stable@dpdk.org
>> Subject: Re: [dpdk-stable] [PATCH] net/i40e: fix assignment of enum values
>>
>> On 9/22/2017 1:36 PM, Michal Jastrzebski wrote:
>>> From: Tomasz Kulasek <tomaszx.kulasek@intel.com>
>>>
>>> mixed_enums: Mixing enum types enum i40e_vsi_type and enum
>>> virtchnl_vsi_type for type
>>>
>>> Coverity issue 158651
>>> Fixes: a58860f68929 ("net/i40e/base: use new virtchnl header file")
>>> Cc: jingjing.wu@intel.com
>>> Cc: stable@dpdk.org
>>>
>>> Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Applied to dpdk-next-net/master, thanks.
@@ -1295,7 +1295,15 @@ static int i40evf_dev_xstats_get(struct rte_eth_dev *dev,
if (hw->mac.type == I40E_MAC_X722_VF)
vf->flags = I40E_FLAG_RSS_AQ_CAPABLE;
vf->vsi.vsi_id = vf->vsi_res->vsi_id;
- vf->vsi.type = (enum i40e_vsi_type)vf->vsi_res->vsi_type;
+
+ switch (vf->vsi_res->vsi_type) {
+ case VIRTCHNL_VSI_SRIOV:
+ vf->vsi.type = I40E_VSI_SRIOV;
+ break;
+ default:
+ vf->vsi.type = I40E_VSI_TYPE_UNKNOWN;
+ break;
+ }
vf->vsi.nb_qps = vf->vsi_res->num_queue_pairs;
vf->vsi.adapter = I40E_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);