net/cpfl: reset devargs during the first probe
Checks
Commit Message
From: Beilei Xing <beilei.xing@intel.com>
Reset devargs during the first probe. Otherwise, probe again will
be affected.
Fixes: a607312291b3 ("net/cpfl: support probe again")
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
---
drivers/net/cpfl/cpfl_ethdev.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
Comments
> -----Original Message-----
> From: beilei.xing@intel.com <beilei.xing@intel.com>
> Sent: Thursday, October 12, 2023 12:47 AM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>
> Subject: [PATCH] net/cpfl: reset devargs during the first probe
>
> From: Beilei Xing <beilei.xing@intel.com>
>
> Reset devargs during the first probe. Otherwise, probe again will be affected.
>
> Fixes: a607312291b3 ("net/cpfl: support probe again")
>
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>
> ---
> drivers/net/cpfl/cpfl_ethdev.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
> index 762fbddfe6..890a027a1d 100644
> --- a/drivers/net/cpfl/cpfl_ethdev.c
> +++ b/drivers/net/cpfl/cpfl_ethdev.c
> @@ -1611,11 +1611,12 @@ cpfl_parse_devargs(struct rte_pci_device
> *pci_dev, struct cpfl_adapter_ext *adap
> struct rte_kvargs *kvlist;
> int ret;
>
> - cpfl_args->req_vport_nb = 0;
> -
> if (devargs == NULL)
> return 0;
>
> + if (first)
> + memset(cpfl_args, 0, sizeof(struct cpfl_devargs));
> +
> kvlist = rte_kvargs_parse(devargs->args,
> first ? cpfl_valid_args_first : cpfl_valid_args_again);
> if (kvlist == NULL) {
> @@ -1628,7 +1629,6 @@ cpfl_parse_devargs(struct rte_pci_device *pci_dev,
> struct cpfl_adapter_ext *adap
> return -EINVAL;
> }
>
> - cpfl_args->repr_args_num = 0;
> ret = rte_kvargs_process(kvlist, CPFL_REPRESENTOR, &parse_repr,
> cpfl_args);
>
> if (ret != 0)
> --
> 2.34.1
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
As the target patch has not been merged into main stream, squashed this patch in dpdk-next-net-intel.
Thanks
Qi
> -----Original Message-----
> From: Xing, Beilei <beilei.xing@intel.com>
> Sent: Thursday, October 12, 2023 12:47 AM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>
> Subject: [PATCH] net/cpfl: reset devargs during the first probe
>
> From: Beilei Xing <beilei.xing@intel.com>
> Reset devargs during the first probe. Otherwise, probe again will
> be affected.
>
> Fixes: a607312291b3 ("net/cpfl: support probe again")
>
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>
> ---
> drivers/net/cpfl/cpfl_ethdev.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c
> index 762fbddfe6..890a027a1d 100644
> --- a/drivers/net/cpfl/cpfl_ethdev.c
> +++ b/drivers/net/cpfl/cpfl_ethdev.c
> @@ -1611,11 +1611,12 @@ cpfl_parse_devargs(struct rte_pci_device *pci_dev,
> struct cpfl_adapter_ext *adap
> struct rte_kvargs *kvlist;
> int ret;
>
> - cpfl_args->req_vport_nb = 0;
> -
> if (devargs == NULL)
> return 0;
>
> + if (first)
> + memset(cpfl_args, 0, sizeof(struct cpfl_devargs));
> +
adapter is allocated by rte_zmalloc. It should be zero already.
If I understand correctly, memset to 0 should be happened when first probe is done or before probe again but not at the beginning when first probe.
> -----Original Message-----
> From: Wu, Jingjing <jingjing.wu@intel.com>
> Sent: Thursday, October 12, 2023 2:54 PM
> To: Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH] net/cpfl: reset devargs during the first probe
>
>
>
> > -----Original Message-----
> > From: Xing, Beilei <beilei.xing@intel.com>
> > Sent: Thursday, October 12, 2023 12:47 AM
> > To: Wu, Jingjing <jingjing.wu@intel.com>
> > Cc: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>
> > Subject: [PATCH] net/cpfl: reset devargs during the first probe
> >
> > From: Beilei Xing <beilei.xing@intel.com>
>
> > Reset devargs during the first probe. Otherwise, probe again will be
> > affected.
> >
> > Fixes: a607312291b3 ("net/cpfl: support probe again")
> >
> > Signed-off-by: Beilei Xing <beilei.xing@intel.com>
> > ---
> > drivers/net/cpfl/cpfl_ethdev.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/net/cpfl/cpfl_ethdev.c
> > b/drivers/net/cpfl/cpfl_ethdev.c index 762fbddfe6..890a027a1d 100644
> > --- a/drivers/net/cpfl/cpfl_ethdev.c
> > +++ b/drivers/net/cpfl/cpfl_ethdev.c
> > @@ -1611,11 +1611,12 @@ cpfl_parse_devargs(struct rte_pci_device
> > *pci_dev, struct cpfl_adapter_ext *adap
> > struct rte_kvargs *kvlist;
> > int ret;
> >
> > - cpfl_args->req_vport_nb = 0;
> > -
> > if (devargs == NULL)
> > return 0;
> >
> > + if (first)
> > + memset(cpfl_args, 0, sizeof(struct cpfl_devargs));
> > +
> adapter is allocated by rte_zmalloc. It should be zero already.
> If I understand correctly, memset to 0 should be happened when first probe is
> done or before probe again but not at the beginning when first probe.
But 'struct cpfl_devargs devargs' is the member of adapter, if 'memset to 0' happens before probe again, adapter->devargs will only save the last devargs.
> -----Original Message-----
> From: Xing, Beilei <beilei.xing@intel.com>
> Sent: Thursday, October 12, 2023 3:42 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>
> Cc: dev@dpdk.org
> Subject: RE: [PATCH] net/cpfl: reset devargs during the first probe
>
>
>
> > -----Original Message-----
> > From: Wu, Jingjing <jingjing.wu@intel.com>
> > Sent: Thursday, October 12, 2023 2:54 PM
> > To: Xing, Beilei <beilei.xing@intel.com>
> > Cc: dev@dpdk.org
> > Subject: RE: [PATCH] net/cpfl: reset devargs during the first probe
> >
> >
> >
> > > -----Original Message-----
> > > From: Xing, Beilei <beilei.xing@intel.com>
> > > Sent: Thursday, October 12, 2023 12:47 AM
> > > To: Wu, Jingjing <jingjing.wu@intel.com>
> > > Cc: dev@dpdk.org; Xing, Beilei <beilei.xing@intel.com>
> > > Subject: [PATCH] net/cpfl: reset devargs during the first probe
> > >
> > > From: Beilei Xing <beilei.xing@intel.com>
> >
> > > Reset devargs during the first probe. Otherwise, probe again will be
> > > affected.
> > >
> > > Fixes: a607312291b3 ("net/cpfl: support probe again")
> > >
> > > Signed-off-by: Beilei Xing <beilei.xing@intel.com>
> > > ---
> > > drivers/net/cpfl/cpfl_ethdev.c | 6 +++---
> > > 1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/drivers/net/cpfl/cpfl_ethdev.c
> > > b/drivers/net/cpfl/cpfl_ethdev.c index 762fbddfe6..890a027a1d 100644
> > > --- a/drivers/net/cpfl/cpfl_ethdev.c
> > > +++ b/drivers/net/cpfl/cpfl_ethdev.c
> > > @@ -1611,11 +1611,12 @@ cpfl_parse_devargs(struct rte_pci_device
> > > *pci_dev, struct cpfl_adapter_ext *adap
> > > struct rte_kvargs *kvlist;
> > > int ret;
> > >
> > > - cpfl_args->req_vport_nb = 0;
> > > -
> > > if (devargs == NULL)
> > > return 0;
> > >
> > > + if (first)
> > > + memset(cpfl_args, 0, sizeof(struct cpfl_devargs));
> > > +
> > adapter is allocated by rte_zmalloc. It should be zero already.
> > If I understand correctly, memset to 0 should be happened when first
> > probe is done or before probe again but not at the beginning when first probe.
>
> But 'struct cpfl_devargs devargs' is the member of adapter, if 'memset to 0'
> happens before probe again, adapter->devargs will only save the last devargs.
Reverted from dpdk-next-net-intel.
@@ -1611,11 +1611,12 @@ cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adap
struct rte_kvargs *kvlist;
int ret;
- cpfl_args->req_vport_nb = 0;
-
if (devargs == NULL)
return 0;
+ if (first)
+ memset(cpfl_args, 0, sizeof(struct cpfl_devargs));
+
kvlist = rte_kvargs_parse(devargs->args,
first ? cpfl_valid_args_first : cpfl_valid_args_again);
if (kvlist == NULL) {
@@ -1628,7 +1629,6 @@ cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adap
return -EINVAL;
}
- cpfl_args->repr_args_num = 0;
ret = rte_kvargs_process(kvlist, CPFL_REPRESENTOR, &parse_repr, cpfl_args);
if (ret != 0)