[dpdk-dev] service: fix compilation error

Message ID 1505896277-125758-1-git-send-email-yi.y.yang@intel.com (mailing list archive)
State Superseded, archived
Headers

Checks

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

Commit Message

Yi Yang Sept. 20, 2017, 8:31 a.m. UTC
  CC rte_service.o
  ./dpdk/lib/librte_eal/common/rte_service.c: In function
    ‘rte_service_start_with_defaults’:
  ./dpdk/lib/librte_eal/common/rte_service.c:449:9:
    error: ‘ids[0]’ may be used uninitialized in this
    function [-Werror=maybe-uninitialized]
   ret = rte_service_map_lcore_set(i, ids[lcore_iter], 1);

  cc1: all warnings being treated as errors
  ./dpdk/mk/internal/rte.compile-pre.mk:138:
    recipe for target 'rte_service.o' failed

Signed-off-by: Yi Yang <yi.y.yang@intel.com>
---
 lib/librte_eal/common/rte_service.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Van Haaren, Harry Sept. 20, 2017, 9 a.m. UTC | #1
> From: Yang, Yi Y

> Sent: Wednesday, September 20, 2017 9:31 AM

> To: Van Haaren, Harry <harry.van.haaren@intel.com>

> Cc: dev@dpdk.org; Yang, Yi Y <yi.y.yang@intel.com>

> Subject: [PATCH] service: fix compilation error

> 

>   CC rte_service.o

>   ./dpdk/lib/librte_eal/common/rte_service.c: In function

>     ‘rte_service_start_with_defaults’:

>   ./dpdk/lib/librte_eal/common/rte_service.c:449:9:

>     error: ‘ids[0]’ may be used uninitialized in this

>     function [-Werror=maybe-uninitialized]

>    ret = rte_service_map_lcore_set(i, ids[lcore_iter], 1);

> 

>   cc1: all warnings being treated as errors

>   ./dpdk/mk/internal/rte.compile-pre.mk:138:

>     recipe for target 'rte_service.o' failed

> 

> Signed-off-by: Yi Yang <yi.y.yang@intel.com>


Hi Yi,

Would you provide a more descriptive commit title
and message please? The compilation output should not be
included in the commit message, instead a short description
of what the error is, and what steps can be taken to
reproduce the error are much more helpful.

The code changes look OK to me - but I'd like to be able
to catch these issues in future, so steps to reproduce are
valuable to me.

Thanks, -Harry


> ---

>  lib/librte_eal/common/rte_service.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/lib/librte_eal/common/rte_service.c

> b/lib/librte_eal/common/rte_service.c

> index 43716bb..e598e16 100644

> --- a/lib/librte_eal/common/rte_service.c

> +++ b/lib/librte_eal/common/rte_service.c

> @@ -431,7 +431,7 @@ rte_service_start_with_defaults(void)

>  	uint32_t count = rte_service_get_count();

> 

>  	int32_t lcore_iter = 0;

> -	uint32_t ids[RTE_MAX_LCORE];

> +	uint32_t ids[RTE_MAX_LCORE] = {0};

>  	int32_t lcore_count = rte_service_lcore_list(ids, RTE_MAX_LCORE);

> 

>  	if (lcore_count == 0)

> --

> 2.1.0
  
Yi Yang Sept. 21, 2017, 1:50 a.m. UTC | #2
On Wed, Sep 20, 2017 at 05:00:11PM +0800, Van Haaren, Harry wrote:
> > From: Yang, Yi Y
> > Sent: Wednesday, September 20, 2017 9:31 AM
> > To: Van Haaren, Harry <harry.van.haaren@intel.com>
> > Cc: dev@dpdk.org; Yang, Yi Y <yi.y.yang@intel.com>
> > Subject: [PATCH] service: fix compilation error
> > 
> >   CC rte_service.o
> >   ./dpdk/lib/librte_eal/common/rte_service.c: In function
> >     ‘rte_service_start_with_defaults’:
> >   ./dpdk/lib/librte_eal/common/rte_service.c:449:9:
> >     error: ‘ids[0]’ may be used uninitialized in this
> >     function [-Werror=maybe-uninitialized]
> >    ret = rte_service_map_lcore_set(i, ids[lcore_iter], 1);
> > 
> >   cc1: all warnings being treated as errors
> >   ./dpdk/mk/internal/rte.compile-pre.mk:138:
> >     recipe for target 'rte_service.o' failed
> > 
> > Signed-off-by: Yi Yang <yi.y.yang@intel.com>
> 
> Hi Yi,
> 
> Would you provide a more descriptive commit title
> and message please? The compilation output should not be
> included in the commit message, instead a short description
> of what the error is, and what steps can be taken to
> reproduce the error are much more helpful.
> 
> The code changes look OK to me - but I'd like to be able
> to catch these issues in future, so steps to reproduce are
> valuable to me.
> 
> Thanks, -Harry

Harry, normal DPDK make everybody does usually will trigger
this on current master tree, I'm not sure if it is gcc version
related. On my Fedora 21, it can be reproduced very easily.
I met it when I fixed another vhost bug, I can't build DPDK
without it, that is why I want to commit it to you :-)

I have posted out v2 with more descriptive title and git log
body per your comments. Thanks a lot for your review.

> 
> 
> > ---
> >  lib/librte_eal/common/rte_service.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/lib/librte_eal/common/rte_service.c
> > b/lib/librte_eal/common/rte_service.c
> > index 43716bb..e598e16 100644
> > --- a/lib/librte_eal/common/rte_service.c
> > +++ b/lib/librte_eal/common/rte_service.c
> > @@ -431,7 +431,7 @@ rte_service_start_with_defaults(void)
> >  	uint32_t count = rte_service_get_count();
> > 
> >  	int32_t lcore_iter = 0;
> > -	uint32_t ids[RTE_MAX_LCORE];
> > +	uint32_t ids[RTE_MAX_LCORE] = {0};
> >  	int32_t lcore_count = rte_service_lcore_list(ids, RTE_MAX_LCORE);
> > 
> >  	if (lcore_count == 0)
> > --
> > 2.1.0
>
  

Patch

diff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c
index 43716bb..e598e16 100644
--- a/lib/librte_eal/common/rte_service.c
+++ b/lib/librte_eal/common/rte_service.c
@@ -431,7 +431,7 @@  rte_service_start_with_defaults(void)
 	uint32_t count = rte_service_get_count();
 
 	int32_t lcore_iter = 0;
-	uint32_t ids[RTE_MAX_LCORE];
+	uint32_t ids[RTE_MAX_LCORE] = {0};
 	int32_t lcore_count = rte_service_lcore_list(ids, RTE_MAX_LCORE);
 
 	if (lcore_count == 0)