[dpdk-dev] lpm: fix allocation of an existing object

Message ID 20180130185154.20095-1-pbhagavatula@caviumnetworks.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Pavan Nikhilesh Jan. 30, 2018, 6:51 p.m. UTC
  Fix rte_lpm_create_*() functions to return NULL and set rte_errno to
EEXIST when lpm object name already exists.
This is the behavior described in the API documentation in the header
file.

Fixes: 134975073af3 ("lib: remove unnecessary pointer cast")

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
---

 This was already fixed in a previous patch by Olivier commit id
 f82f705b635d31a63446a16bc4526dbebf293c5a.
 But for some reason was undone in 134975073af3.
 lpm6 is untouched.
 Fixes currently broken 'func_reentrancy_autotest'.

 lib/librte_lpm/rte_lpm.c | 2 ++
 1 file changed, 2 insertions(+)

--
2.16.0
  

Comments

Phil Yang Jan. 31, 2018, 4:47 a.m. UTC | #1
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pavan Nikhilesh
> Sent: Wednesday, January 31, 2018 2:52 AM
> To: thomas@monjalon.net; zhiyong.yang@intel.com; ferruh.yigit@intel.com;
> olivier.matz@6wind.com; pablo.de.lara.guarch@intel.com
> Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> Subject: [dpdk-dev] [PATCH] lpm: fix allocation of an existing object
> 
> Fix rte_lpm_create_*() functions to return NULL and set rte_errno to EEXIST
> when lpm object name already exists.
> This is the behavior described in the API documentation in the header file.
> 
> Fixes: 134975073af3 ("lib: remove unnecessary pointer cast")
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>

Acked-by: Phil Yang <phil.yang@arm.com>

> ---
> 
>  This was already fixed in a previous patch by Olivier commit id
> f82f705b635d31a63446a16bc4526dbebf293c5a.
>  But for some reason was undone in 134975073af3.
>  lpm6 is untouched.
>  Fixes currently broken 'func_reentrancy_autotest'.
> 
>  lib/librte_lpm/rte_lpm.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index
> d464dbda9..d00b13d93 100644
> --- a/lib/librte_lpm/rte_lpm.c
> +++ b/lib/librte_lpm/rte_lpm.c
> @@ -180,6 +180,7 @@ rte_lpm_create_v20(const char *name, int socket_id,
> int max_rules,
>  	}
> 
>  	if (te != NULL) {
> +		lpm = NULL;
>  		rte_errno = EEXIST;
>  		goto exit;
>  	}
> @@ -256,6 +257,7 @@ rte_lpm_create_v1604(const char *name, int socket_id,
>  	}
> 
>  	if (te != NULL) {
> +		lpm = NULL;
>  		rte_errno = EEXIST;
>  		goto exit;
>  	}
> --
> 2.16.0
  
Anatoly Burakov Jan. 31, 2018, 1:30 p.m. UTC | #2
On 30-Jan-18 6:51 PM, Pavan Nikhilesh wrote:
> Fix rte_lpm_create_*() functions to return NULL and set rte_errno to
> EEXIST when lpm object name already exists.
> This is the behavior described in the API documentation in the header
> file.
> 
> Fixes: 134975073af3 ("lib: remove unnecessary pointer cast")
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> ---

Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
  
Thomas Monjalon Jan. 31, 2018, 11:36 p.m. UTC | #3
31/01/2018 14:30, Burakov, Anatoly:
> On 30-Jan-18 6:51 PM, Pavan Nikhilesh wrote:
> > Fix rte_lpm_create_*() functions to return NULL and set rte_errno to
> > EEXIST when lpm object name already exists.
> > This is the behavior described in the API documentation in the header
> > file.
> > 
> > Fixes: 134975073af3 ("lib: remove unnecessary pointer cast")
> > 
> > Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> 
> Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>

Applied, thanks
  
Yang, Zhiyong Feb. 1, 2018, 1:52 a.m. UTC | #4
Hi Pavan,

Good catch!  Thank you for fixing it.  It's my negligence.  

Thanks
Zhiyong

> -----Original Message-----
> From: Pavan Nikhilesh [mailto:pbhagavatula@caviumnetworks.com]
> Sent: Wednesday, January 31, 2018 2:52 AM
> To: thomas@monjalon.net; Yang, Zhiyong <zhiyong.yang@intel.com>; Yigit,
> Ferruh <ferruh.yigit@intel.com>; olivier.matz@6wind.com; De Lara Guarch,
> Pablo <pablo.de.lara.guarch@intel.com>
> Cc: dev@dpdk.org; Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> Subject: [dpdk-dev] [PATCH] lpm: fix allocation of an existing object
> 
> Fix rte_lpm_create_*() functions to return NULL and set rte_errno to EEXIST
> when lpm object name already exists.
> This is the behavior described in the API documentation in the header file.
> 
> Fixes: 134975073af3 ("lib: remove unnecessary pointer cast")
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
> ---
  

Patch

diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c
index d464dbda9..d00b13d93 100644
--- a/lib/librte_lpm/rte_lpm.c
+++ b/lib/librte_lpm/rte_lpm.c
@@ -180,6 +180,7 @@  rte_lpm_create_v20(const char *name, int socket_id, int max_rules,
 	}

 	if (te != NULL) {
+		lpm = NULL;
 		rte_errno = EEXIST;
 		goto exit;
 	}
@@ -256,6 +257,7 @@  rte_lpm_create_v1604(const char *name, int socket_id,
 	}

 	if (te != NULL) {
+		lpm = NULL;
 		rte_errno = EEXIST;
 		goto exit;
 	}