DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning
@ 2015-03-16 12:56 John McNamara
  2015-03-16 13:19 ` Neil Horman
  2015-03-16 17:05 ` [dpdk-dev] [PATCH v2] " John McNamara
  0 siblings, 2 replies; 7+ messages in thread
From: John McNamara @ 2015-03-16 12:56 UTC (permalink / raw)
  To: dev

Fix a warning when the rte_common.h header is included in a compilation
using  -Wbad-function-cast, such as in Open vSwitch where the
following warning is emitted repeatedly:

    ../rte_common.h: In function 'rte_is_aligned':
    ../rte_common.h:184:9: warning: cast from function call of
    type 'uintptr_t' to non-matching type 'void *' [-Wbad-function-cast]

This change fixes the issue in rte_common.h by using the RTE_ALIGN_FLOOR
macro to get the aligned floor value with generic type casting.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
---
 lib/librte_eal/common/include/rte_common.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index 4971049..86b7e9b 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -120,7 +120,7 @@ rte_align_floor_int(uintptr_t ptr, uintptr_t align)
  * must be a power-of-two value.
  */
 #define RTE_PTR_ALIGN_FLOOR(ptr, align) \
-	(typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align)
+	(typeof(ptr))RTE_ALIGN_FLOOR((uintptr_t)ptr, align)
 
 /**
  * Macro to align a value to a given power-of-two. The resultant value
-- 
1.8.1.4

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

* Re: [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning
  2015-03-16 12:56 [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning John McNamara
@ 2015-03-16 13:19 ` Neil Horman
  2015-03-16 15:04   ` Mcnamara, John
  2015-03-16 17:05 ` [dpdk-dev] [PATCH v2] " John McNamara
  1 sibling, 1 reply; 7+ messages in thread
From: Neil Horman @ 2015-03-16 13:19 UTC (permalink / raw)
  To: John McNamara; +Cc: dev

On Mon, Mar 16, 2015 at 12:56:04PM +0000, John McNamara wrote:
> Fix a warning when the rte_common.h header is included in a compilation
> using  -Wbad-function-cast, such as in Open vSwitch where the
> following warning is emitted repeatedly:
> 
>     ../rte_common.h: In function 'rte_is_aligned':
>     ../rte_common.h:184:9: warning: cast from function call of
>     type 'uintptr_t' to non-matching type 'void *' [-Wbad-function-cast]
> 
> This change fixes the issue in rte_common.h by using the RTE_ALIGN_FLOOR
> macro to get the aligned floor value with generic type casting.
> 
> Signed-off-by: John McNamara <john.mcnamara@intel.com>
> ---
>  lib/librte_eal/common/include/rte_common.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
> index 4971049..86b7e9b 100644
> --- a/lib/librte_eal/common/include/rte_common.h
> +++ b/lib/librte_eal/common/include/rte_common.h
> @@ -120,7 +120,7 @@ rte_align_floor_int(uintptr_t ptr, uintptr_t align)
>   * must be a power-of-two value.
>   */
>  #define RTE_PTR_ALIGN_FLOOR(ptr, align) \
> -	(typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align)
> +	(typeof(ptr))RTE_ALIGN_FLOOR((uintptr_t)ptr, align)
>  
>  /**
>   * Macro to align a value to a given power-of-two. The resultant value
> -- 
> 1.8.1.4
> 
> 

This looks reasonable, but it rather begs the question as to why we need
rte_align_floor_int in the first place.  Theres only one other call site, and it
looks like it could use RTE_PTR_ALIGN_FLOOR just as easily.  What about fixing
up the second call site and removing the function to save some space?

Best
Neil

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

* Re: [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning
  2015-03-16 13:19 ` Neil Horman
@ 2015-03-16 15:04   ` Mcnamara, John
  2015-03-16 15:45     ` Neil Horman
  0 siblings, 1 reply; 7+ messages in thread
From: Mcnamara, John @ 2015-03-16 15:04 UTC (permalink / raw)
  To: Neil Horman; +Cc: dev

> -----Original Message-----
> From: Neil Horman [mailto:nhorman@tuxdriver.com]
> Sent: Monday, March 16, 2015 1:19 PM
> To: Mcnamara, John
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning
> 
> 
> This looks reasonable, but it rather begs the question as to why we need
> rte_align_floor_int in the first place.  Theres only one other call site,
> and it looks like it could use RTE_PTR_ALIGN_FLOOR just as easily.  What
> about fixing up the second call site and removing the function to save
> some space?

Hi Neil,

Seems like a good idea. I'll submit a v2.

Does rte_align_floor_int() need to be deprecated in some way or is it okay to just remove it?

John

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

* Re: [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning
  2015-03-16 15:04   ` Mcnamara, John
@ 2015-03-16 15:45     ` Neil Horman
  0 siblings, 0 replies; 7+ messages in thread
From: Neil Horman @ 2015-03-16 15:45 UTC (permalink / raw)
  To: Mcnamara, John; +Cc: dev

On Mon, Mar 16, 2015 at 03:04:45PM +0000, Mcnamara, John wrote:
> > -----Original Message-----
> > From: Neil Horman [mailto:nhorman@tuxdriver.com]
> > Sent: Monday, March 16, 2015 1:19 PM
> > To: Mcnamara, John
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning
> > 
> > 
> > This looks reasonable, but it rather begs the question as to why we need
> > rte_align_floor_int in the first place.  Theres only one other call site,
> > and it looks like it could use RTE_PTR_ALIGN_FLOOR just as easily.  What
> > about fixing up the second call site and removing the function to save
> > some space?
> 
> Hi Neil,
> 
> Seems like a good idea. I'll submit a v2.
> 
> Does rte_align_floor_int() need to be deprecated in some way or is it okay to just remove it?
> 
> John
> 
After the 2.0 release you should put a note in the api document, yes, but right
now its not required.  Though if you wanted to, I wouldn't stop you :)
Neil

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

* [dpdk-dev] [PATCH v2] eal: fix Wbad-function-cast warning
  2015-03-16 12:56 [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning John McNamara
  2015-03-16 13:19 ` Neil Horman
@ 2015-03-16 17:05 ` John McNamara
  2015-03-16 17:52   ` Neil Horman
  1 sibling, 1 reply; 7+ messages in thread
From: John McNamara @ 2015-03-16 17:05 UTC (permalink / raw)
  To: dev

Fix a warning when the rte_common.h header is included in a compilation
using  -Wbad-function-cast, such as in Open vSwitch where the
following warning is emitted repeatedly:

    ../rte_common.h: In function 'rte_is_aligned':
    ../rte_common.h:184:9: warning: cast from function call of
    type 'uintptr_t' to non-matching type 'void *' [-Wbad-function-cast]

This change fixes the issue in rte_common.h by using the RTE_ALIGN_FLOOR
macro to get the aligned floor value with generic type casting.

Also removed the rte_align_floor_int() function and replaced it with
the RTE_PTR_ALIGN_FLOOR() macro.

Signed-off-by: John McNamara <john.mcnamara@intel.com>
---
 app/test/test_common.c                     |  4 ++--
 lib/librte_eal/common/include/rte_common.h | 21 +--------------------
 lib/librte_malloc/malloc_elem.c            |  2 +-
 3 files changed, 4 insertions(+), 23 deletions(-)

diff --git a/app/test/test_common.c b/app/test/test_common.c
index 4b71e7b..66e9109 100644
--- a/app/test/test_common.c
+++ b/app/test/test_common.c
@@ -122,8 +122,8 @@ test_align(void)
 
 		for (i = 1; i <= MAX_NUM; i++) {
 			/* align floor */
-			if (rte_align_floor_int((uintptr_t)i, p) % p)
-				FAIL_ALIGN("rte_align_floor_int", i, p);
+			if (RTE_ALIGN_FLOOR((uintptr_t)i, p) % p)
+				FAIL_ALIGN("RTE_ALIGN_FLOOR", i, p);
 
 			val = RTE_PTR_ALIGN_FLOOR((uintptr_t) i, p);
 			if (ERROR_FLOOR(val, i, p))
diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index 4971049..c0ab8b4 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -93,25 +93,6 @@ extern "C" {
 
 /*********** Macros/static functions for doing alignment ********/
 
-/**
- * Function which rounds an unsigned int down to a given power-of-two value.
- * Takes uintptr_t types as parameters, as this type of operation is most
- * commonly done for pointer alignment. (See also RTE_ALIGN_FLOOR,
- * RTE_ALIGN_CEIL, RTE_ALIGN, RTE_PTR_ALIGN_FLOOR, RTE_PTR_ALIGN_CEL,
- * RTE_PTR_ALIGN macros)
- * @param ptr
- *   The value to be rounded down
- * @param align
- *   The power-of-two of which the result must be a multiple.
- * @return
- *   Function returns a properly aligned value where align is a power-of-two.
- *   If align is not a power-of-two, result will be incorrect.
- */
-static inline uintptr_t
-rte_align_floor_int(uintptr_t ptr, uintptr_t align)
-{
-	return (ptr & ~(align - 1));
-}
 
 /**
  * Macro to align a pointer to a given power-of-two. The resultant
@@ -120,7 +101,7 @@ rte_align_floor_int(uintptr_t ptr, uintptr_t align)
  * must be a power-of-two value.
  */
 #define RTE_PTR_ALIGN_FLOOR(ptr, align) \
-	(typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align)
+	((typeof(ptr))RTE_ALIGN_FLOOR((uintptr_t)ptr, align))
 
 /**
  * Macro to align a value to a given power-of-two. The resultant value
diff --git a/lib/librte_malloc/malloc_elem.c b/lib/librte_malloc/malloc_elem.c
index fd0532e..a5e1248 100644
--- a/lib/librte_malloc/malloc_elem.c
+++ b/lib/librte_malloc/malloc_elem.c
@@ -90,7 +90,7 @@ elem_start_pt(struct malloc_elem *elem, size_t size, unsigned align)
 {
 	const uintptr_t end_pt = (uintptr_t)elem +
 			elem->size - MALLOC_ELEM_TRAILER_LEN;
-	const uintptr_t new_data_start = rte_align_floor_int((end_pt - size),align);
+	const uintptr_t new_data_start = RTE_ALIGN_FLOOR((end_pt - size), align);
 	const uintptr_t new_elem_start = new_data_start - MALLOC_ELEM_HEADER_LEN;
 
 	/* if the new start point is before the exist start, it won't fit */
-- 
1.8.1.4

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

* Re: [dpdk-dev] [PATCH v2] eal: fix Wbad-function-cast warning
  2015-03-16 17:05 ` [dpdk-dev] [PATCH v2] " John McNamara
@ 2015-03-16 17:52   ` Neil Horman
  2015-03-16 23:29     ` Thomas Monjalon
  0 siblings, 1 reply; 7+ messages in thread
From: Neil Horman @ 2015-03-16 17:52 UTC (permalink / raw)
  To: John McNamara; +Cc: dev

On Mon, Mar 16, 2015 at 05:05:06PM +0000, John McNamara wrote:
> Fix a warning when the rte_common.h header is included in a compilation
> using  -Wbad-function-cast, such as in Open vSwitch where the
> following warning is emitted repeatedly:
> 
>     ../rte_common.h: In function 'rte_is_aligned':
>     ../rte_common.h:184:9: warning: cast from function call of
>     type 'uintptr_t' to non-matching type 'void *' [-Wbad-function-cast]
> 
> This change fixes the issue in rte_common.h by using the RTE_ALIGN_FLOOR
> macro to get the aligned floor value with generic type casting.
> 
> Also removed the rte_align_floor_int() function and replaced it with
> the RTE_PTR_ALIGN_FLOOR() macro.
> 
> Signed-off-by: John McNamara <john.mcnamara@intel.com>

Acked-by: Neil Horman <nhorman@tuxdriver.com>

 

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

* Re: [dpdk-dev] [PATCH v2] eal: fix Wbad-function-cast warning
  2015-03-16 17:52   ` Neil Horman
@ 2015-03-16 23:29     ` Thomas Monjalon
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Monjalon @ 2015-03-16 23:29 UTC (permalink / raw)
  To: John McNamara; +Cc: dev

2015-03-16 13:52, Neil Horman:
> On Mon, Mar 16, 2015 at 05:05:06PM +0000, John McNamara wrote:
> > Fix a warning when the rte_common.h header is included in a compilation
> > using  -Wbad-function-cast, such as in Open vSwitch where the
> > following warning is emitted repeatedly:
> > 
> >     ../rte_common.h: In function 'rte_is_aligned':
> >     ../rte_common.h:184:9: warning: cast from function call of
> >     type 'uintptr_t' to non-matching type 'void *' [-Wbad-function-cast]
> > 
> > This change fixes the issue in rte_common.h by using the RTE_ALIGN_FLOOR
> > macro to get the aligned floor value with generic type casting.
> > 
> > Also removed the rte_align_floor_int() function and replaced it with
> > the RTE_PTR_ALIGN_FLOOR() macro.
> > 
> > Signed-off-by: John McNamara <john.mcnamara@intel.com>
> 
> Acked-by: Neil Horman <nhorman@tuxdriver.com>

Applied, thanks

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

end of thread, other threads:[~2015-03-16 23:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-16 12:56 [dpdk-dev] [PATCH] eal: fix Wbad-function-cast warning John McNamara
2015-03-16 13:19 ` Neil Horman
2015-03-16 15:04   ` Mcnamara, John
2015-03-16 15:45     ` Neil Horman
2015-03-16 17:05 ` [dpdk-dev] [PATCH v2] " John McNamara
2015-03-16 17:52   ` Neil Horman
2015-03-16 23:29     ` 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).