DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v4] examples/qos_sched: fix bad bit shift operation
@ 2016-05-11  8:48 Slawomir Mrozowicz
  2016-05-11 10:17 ` Dumitrescu, Cristian
  0 siblings, 1 reply; 4+ messages in thread
From: Slawomir Mrozowicz @ 2016-05-11  8:48 UTC (permalink / raw)
  To: cristian.dumitrescu; +Cc: dev, jasvinder.singh, Slawomir Mrozowicz

Fix issue reported by Coverity.

Coverity ID 30690: Bad bit shift operation
large_shift: In expression 1ULL << i, left shifting by more than 63 bits
has undefined behavior. The shift amount, i, is as much as 127.

Fixes: de3cfa2c9823 ("sched: initial import")

Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
---
 examples/qos_sched/args.c | 4 ++--
 examples/qos_sched/main.h | 5 ++++-
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/examples/qos_sched/args.c b/examples/qos_sched/args.c
index 3e7fd08..354372d 100644
--- a/examples/qos_sched/args.c
+++ b/examples/qos_sched/args.c
@@ -123,7 +123,7 @@ app_eal_core_mask(void)
 	uint64_t cm = 0;
 	struct rte_config *cfg = rte_eal_get_configuration();
 
-	for (i = 0; i < RTE_MAX_LCORE; i++) {
+	for (i = 0; i < APP_MAX_LCORE; i++) {
 		if (cfg->lcore_role[i] == ROLE_RTE)
 			cm |= (1ULL << i);
 	}
@@ -142,7 +142,7 @@ app_cpu_core_count(void)
 	char path[PATH_MAX];
 	uint32_t ncores = 0;
 
-	for(i = 0; i < RTE_MAX_LCORE; i++) {
+	for (i = 0; i < APP_MAX_LCORE; i++) {
 		len = snprintf(path, sizeof(path), SYS_CPU_DIR, i);
 		if (len <= 0 || (unsigned)len >= sizeof(path))
 			continue;
diff --git a/examples/qos_sched/main.h b/examples/qos_sched/main.h
index 82aa0fa..c7490c6 100644
--- a/examples/qos_sched/main.h
+++ b/examples/qos_sched/main.h
@@ -68,7 +68,10 @@ extern "C" {
 
 #define BURST_TX_DRAIN_US 100
 
-#define MAX_DATA_STREAMS (RTE_MAX_LCORE/2)
+#ifndef APP_MAX_LCORE
+#define APP_MAX_LCORE 64
+#endif
+#define MAX_DATA_STREAMS (APP_MAX_LCORE/2)
 #define MAX_SCHED_SUBPORTS		8
 #define MAX_SCHED_PIPES		4096
 
-- 
1.9.1

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH v4] examples/qos_sched: fix bad bit shift operation
  2016-05-11  8:48 [dpdk-dev] [PATCH v4] examples/qos_sched: fix bad bit shift operation Slawomir Mrozowicz
@ 2016-05-11 10:17 ` Dumitrescu, Cristian
  2016-05-16 16:34   ` Thomas Monjalon
  2016-05-16 16:39   ` Thomas Monjalon
  0 siblings, 2 replies; 4+ messages in thread
From: Dumitrescu, Cristian @ 2016-05-11 10:17 UTC (permalink / raw)
  To: Mrozowicz, SlawomirX; +Cc: dev, Singh, Jasvinder



> -----Original Message-----
> From: Mrozowicz, SlawomirX
> Sent: Wednesday, May 11, 2016 9:48 AM
> To: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>
> Cc: dev@dpdk.org; Singh, Jasvinder <jasvinder.singh@intel.com>;
> Mrozowicz, SlawomirX <slawomirx.mrozowicz@intel.com>
> Subject: [PATCH v4] examples/qos_sched: fix bad bit shift operation
> 
> Fix issue reported by Coverity.
> 
> Coverity ID 30690: Bad bit shift operation
> large_shift: In expression 1ULL << i, left shifting by more than 63 bits
> has undefined behavior. The shift amount, i, is as much as 127.
> 
> Fixes: de3cfa2c9823 ("sched: initial import")
> 
> Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
> ---
>  examples/qos_sched/args.c | 4 ++--
>  examples/qos_sched/main.h | 5 ++++-
>  2 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/examples/qos_sched/args.c b/examples/qos_sched/args.c
> index 3e7fd08..354372d 100644
> --- a/examples/qos_sched/args.c
> +++ b/examples/qos_sched/args.c
> @@ -123,7 +123,7 @@ app_eal_core_mask(void)
>  	uint64_t cm = 0;
>  	struct rte_config *cfg = rte_eal_get_configuration();
> 
> -	for (i = 0; i < RTE_MAX_LCORE; i++) {
> +	for (i = 0; i < APP_MAX_LCORE; i++) {
>  		if (cfg->lcore_role[i] == ROLE_RTE)
>  			cm |= (1ULL << i);
>  	}
> @@ -142,7 +142,7 @@ app_cpu_core_count(void)
>  	char path[PATH_MAX];
>  	uint32_t ncores = 0;
> 
> -	for(i = 0; i < RTE_MAX_LCORE; i++) {
> +	for (i = 0; i < APP_MAX_LCORE; i++) {
>  		len = snprintf(path, sizeof(path), SYS_CPU_DIR, i);
>  		if (len <= 0 || (unsigned)len >= sizeof(path))
>  			continue;
> diff --git a/examples/qos_sched/main.h b/examples/qos_sched/main.h
> index 82aa0fa..c7490c6 100644
> --- a/examples/qos_sched/main.h
> +++ b/examples/qos_sched/main.h
> @@ -68,7 +68,10 @@ extern "C" {
> 
>  #define BURST_TX_DRAIN_US 100
> 
> -#define MAX_DATA_STREAMS (RTE_MAX_LCORE/2)
> +#ifndef APP_MAX_LCORE
> +#define APP_MAX_LCORE 64
> +#endif
> +#define MAX_DATA_STREAMS (APP_MAX_LCORE/2)
>  #define MAX_SCHED_SUBPORTS		8
>  #define MAX_SCHED_PIPES		4096
> 
> --
> 1.9.1

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH v4] examples/qos_sched: fix bad bit shift operation
  2016-05-11 10:17 ` Dumitrescu, Cristian
@ 2016-05-16 16:34   ` Thomas Monjalon
  2016-05-16 16:39   ` Thomas Monjalon
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Monjalon @ 2016-05-16 16:34 UTC (permalink / raw)
  To: Dumitrescu, Cristian, Mrozowicz, SlawomirX; +Cc: dev

> > Subject: [PATCH v4] examples/qos_sched: fix bad bit shift operation

Slawomir, please use --in-reply-to when sending a new revision,
to let us see the full history in our mailer and in the archives.

[...]
> > diff --git a/examples/qos_sched/args.c b/examples/qos_sched/args.c
> > index 3e7fd08..354372d 100644
> > --- a/examples/qos_sched/args.c
> > +++ b/examples/qos_sched/args.c
> > @@ -123,7 +123,7 @@ app_eal_core_mask(void)
> >  	uint64_t cm = 0;
> >  	struct rte_config *cfg = rte_eal_get_configuration();
> > 
> > -	for (i = 0; i < RTE_MAX_LCORE; i++) {
> > +	for (i = 0; i < APP_MAX_LCORE; i++) {
> >  		if (cfg->lcore_role[i] == ROLE_RTE)
> >  			cm |= (1ULL << i);
> >  	}
> > @@ -142,7 +142,7 @@ app_cpu_core_count(void)
> >  	char path[PATH_MAX];
> >  	uint32_t ncores = 0;
> > 
> > -	for(i = 0; i < RTE_MAX_LCORE; i++) {
> > +	for (i = 0; i < APP_MAX_LCORE; i++) {
> >  		len = snprintf(path, sizeof(path), SYS_CPU_DIR, i);
> >  		if (len <= 0 || (unsigned)len >= sizeof(path))
> >  			continue;
> > diff --git a/examples/qos_sched/main.h b/examples/qos_sched/main.h
> > index 82aa0fa..c7490c6 100644
> > --- a/examples/qos_sched/main.h
> > +++ b/examples/qos_sched/main.h
> > @@ -68,7 +68,10 @@ extern "C" {
> > 
> >  #define BURST_TX_DRAIN_US 100
> > 
> > -#define MAX_DATA_STREAMS (RTE_MAX_LCORE/2)
> > +#ifndef APP_MAX_LCORE
> > +#define APP_MAX_LCORE 64
> > +#endif
> > +#define MAX_DATA_STREAMS (APP_MAX_LCORE/2)
> >  #define MAX_SCHED_SUBPORTS		8
> >  #define MAX_SCHED_PIPES		4096
> > 
> > --
> > 1.9.1
> 
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Cristian, please remove patch content when acking.
My hand is tired of scrolling ;)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] [PATCH v4] examples/qos_sched: fix bad bit shift operation
  2016-05-11 10:17 ` Dumitrescu, Cristian
  2016-05-16 16:34   ` Thomas Monjalon
@ 2016-05-16 16:39   ` Thomas Monjalon
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Monjalon @ 2016-05-16 16:39 UTC (permalink / raw)
  To: Mrozowicz, SlawomirX; +Cc: dev, Dumitrescu, Cristian, Singh, Jasvinder

> > Fix issue reported by Coverity.
> > 
> > Coverity ID 30690: Bad bit shift operation
> > large_shift: In expression 1ULL << i, left shifting by more than 63 bits
> > has undefined behavior. The shift amount, i, is as much as 127.
> > 
> > Fixes: de3cfa2c9823 ("sched: initial import")
> > 
> > Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
> 
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Applied, thanks

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-05-16 16:39 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-11  8:48 [dpdk-dev] [PATCH v4] examples/qos_sched: fix bad bit shift operation Slawomir Mrozowicz
2016-05-11 10:17 ` Dumitrescu, Cristian
2016-05-16 16:34   ` Thomas Monjalon
2016-05-16 16:39   ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).