[v3,1/1] net/ionic: use standard stdbool.h

Message ID 20200309090927.24206-1-skori@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [v3,1/1] net/ionic: use standard stdbool.h |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK
ci/travis-robot warning Travis build: failed
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Sunil Kumar Kori March 9, 2020, 9:09 a.m. UTC
  Any DPDK public header file which includes stdbool.h may conflict with
local definition of bool, if any, which further results in compilation
error. To avoid, used standard stdbool.h instead of defining bool
internally.

I observed this issue during a development where I included rte_uuid.h
into rte_ethdev.h. As rte_ethdev.h is included to PMD driver, it started
throwing error as given below:

  CC ionic_rxtx.o
In file included from .../dpdk/build/include/rte_uuid.h:17:0,
                 from .../dpdk/build/include/rte_ethdev.h:161,
                 from .../dpdk/build/include/rte_ethdev_driver.h:18,
                 from .../dpdk/drivers/net/ionic/ionic_rxtx.c:34:
.../dpdk/drivers/net/ionic/ionic_osdep.h:48:17: error: two or more data types in declaration specifiers
typedef uint8_t bool;
                 ^
In file included from .../dpdk/drivers/net/ionic/ionic_dev.h:8:0,
                 from .../dpdk/drivers/net/ionic/ionic.h:13,
                 from .../dpdk/drivers/net/ionic/ionic_mac_api.h:8,
                 from .../dpdk/drivers/net/ionic/ionic_rxtx.c:45:
.../dpdk/drivers/net/ionic/ionic_osdep.h:48:1: warning: useless type name in empty declaration
typedef uint8_t bool;
^~~~~~~
cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’
.../dpdk/mk/internal/rte.compile-pre.mk:114: recipe for target 'ionic_rxtx.o' failed

Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter")
Cc: stable@dpdk.org

Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
---
v3:
 - remove #define true and false.
 - add fixes tag.
v2:
 - include stdbool.h in ionic_dev.h

 drivers/net/ionic/ionic_dev.c       | 1 +
 drivers/net/ionic/ionic_dev.h       | 2 ++
 drivers/net/ionic/ionic_mac_api.c   | 1 +
 drivers/net/ionic/ionic_main.c      | 1 +
 drivers/net/ionic/ionic_osdep.h     | 6 ------
 drivers/net/ionic/ionic_rx_filter.c | 1 +
 6 files changed, 6 insertions(+), 6 deletions(-)
  

Comments

Ferruh Yigit March 10, 2020, 3:21 p.m. UTC | #1
On 3/9/2020 9:09 AM, Sunil Kumar Kori wrote:
> Any DPDK public header file which includes stdbool.h may conflict with
> local definition of bool, if any, which further results in compilation
> error. To avoid, used standard stdbool.h instead of defining bool
> internally.
> 
> I observed this issue during a development where I included rte_uuid.h
> into rte_ethdev.h. As rte_ethdev.h is included to PMD driver, it started
> throwing error as given below:
> 
>   CC ionic_rxtx.o
> In file included from .../dpdk/build/include/rte_uuid.h:17:0,
>                  from .../dpdk/build/include/rte_ethdev.h:161,
>                  from .../dpdk/build/include/rte_ethdev_driver.h:18,
>                  from .../dpdk/drivers/net/ionic/ionic_rxtx.c:34:
> .../dpdk/drivers/net/ionic/ionic_osdep.h:48:17: error: two or more data types in declaration specifiers
> typedef uint8_t bool;
>                  ^
> In file included from .../dpdk/drivers/net/ionic/ionic_dev.h:8:0,
>                  from .../dpdk/drivers/net/ionic/ionic.h:13,
>                  from .../dpdk/drivers/net/ionic/ionic_mac_api.h:8,
>                  from .../dpdk/drivers/net/ionic/ionic_rxtx.c:45:
> .../dpdk/drivers/net/ionic/ionic_osdep.h:48:1: warning: useless type name in empty declaration
> typedef uint8_t bool;
> ^~~~~~~
> cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’
> .../dpdk/mk/internal/rte.compile-pre.mk:114: recipe for target 'ionic_rxtx.o' failed
> 
> Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>

Hi Alfredo,

Do you have any concern/objection on the patch? If not it will be merged soon.

Thanks,
ferruh
  
Alfredo Cardigliano March 10, 2020, 3:31 p.m. UTC | #2
> On 10 Mar 2020, at 16:21, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> 
> On 3/9/2020 9:09 AM, Sunil Kumar Kori wrote:
>> Any DPDK public header file which includes stdbool.h may conflict with
>> local definition of bool, if any, which further results in compilation
>> error. To avoid, used standard stdbool.h instead of defining bool
>> internally.
>> 
>> I observed this issue during a development where I included rte_uuid.h
>> into rte_ethdev.h. As rte_ethdev.h is included to PMD driver, it started
>> throwing error as given below:
>> 
>>  CC ionic_rxtx.o
>> In file included from .../dpdk/build/include/rte_uuid.h:17:0,
>>                 from .../dpdk/build/include/rte_ethdev.h:161,
>>                 from .../dpdk/build/include/rte_ethdev_driver.h:18,
>>                 from .../dpdk/drivers/net/ionic/ionic_rxtx.c:34:
>> .../dpdk/drivers/net/ionic/ionic_osdep.h:48:17: error: two or more data types in declaration specifiers
>> typedef uint8_t bool;
>>                 ^
>> In file included from .../dpdk/drivers/net/ionic/ionic_dev.h:8:0,
>>                 from .../dpdk/drivers/net/ionic/ionic.h:13,
>>                 from .../dpdk/drivers/net/ionic/ionic_mac_api.h:8,
>>                 from .../dpdk/drivers/net/ionic/ionic_rxtx.c:45:
>> .../dpdk/drivers/net/ionic/ionic_osdep.h:48:1: warning: useless type name in empty declaration
>> typedef uint8_t bool;
>> ^~~~~~~
>> cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’
>> .../dpdk/mk/internal/rte.compile-pre.mk:114: recipe for target 'ionic_rxtx.o' failed
>> 
>> Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter")
>> Cc: stable@dpdk.org
>> 
>> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>
> 
> Hi Alfredo,
> 
> Do you have any concern/objection on the patch? If not it will be merged soon.
> 
> Thanks,
> ferruh
> 

Hi Ferruh

it looks fine, please go ahead.

Thank you
Alfredo
  
Ferruh Yigit March 10, 2020, 5:10 p.m. UTC | #3
On 3/9/2020 9:09 AM, Sunil Kumar Kori wrote:
> Any DPDK public header file which includes stdbool.h may conflict with
> local definition of bool, if any, which further results in compilation
> error. To avoid, used standard stdbool.h instead of defining bool
> internally.
> 
> I observed this issue during a development where I included rte_uuid.h
> into rte_ethdev.h. As rte_ethdev.h is included to PMD driver, it started
> throwing error as given below:
> 
>   CC ionic_rxtx.o
> In file included from .../dpdk/build/include/rte_uuid.h:17:0,
>                  from .../dpdk/build/include/rte_ethdev.h:161,
>                  from .../dpdk/build/include/rte_ethdev_driver.h:18,
>                  from .../dpdk/drivers/net/ionic/ionic_rxtx.c:34:
> .../dpdk/drivers/net/ionic/ionic_osdep.h:48:17: error: two or more data types in declaration specifiers
> typedef uint8_t bool;
>                  ^
> In file included from .../dpdk/drivers/net/ionic/ionic_dev.h:8:0,
>                  from .../dpdk/drivers/net/ionic/ionic.h:13,
>                  from .../dpdk/drivers/net/ionic/ionic_mac_api.h:8,
>                  from .../dpdk/drivers/net/ionic/ionic_rxtx.c:45:
> .../dpdk/drivers/net/ionic/ionic_osdep.h:48:1: warning: useless type name in empty declaration
> typedef uint8_t bool;
> ^~~~~~~
> cc1: warning: unrecognized command line option ‘-Wno-address-of-packed-member’
> .../dpdk/mk/internal/rte.compile-pre.mk:114: recipe for target 'ionic_rxtx.o' failed
> 
> Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Sunil Kumar Kori <skori@marvell.com>

Converting Alfredo's response to explicit tag:
Acked-by: Alfredo Cardigliano <cardigliano@ntop.org>

Applied to dpdk-next-net/master, thanks.
  

Patch

diff --git a/drivers/net/ionic/ionic_dev.c b/drivers/net/ionic/ionic_dev.c
index aba388115..fe111a515 100644
--- a/drivers/net/ionic/ionic_dev.c
+++ b/drivers/net/ionic/ionic_dev.c
@@ -1,6 +1,7 @@ 
 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
  * Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
  */
+#include <stdbool.h>
 
 #include <rte_malloc.h>
 
diff --git a/drivers/net/ionic/ionic_dev.h b/drivers/net/ionic/ionic_dev.h
index 8c1ec13a6..532255a60 100644
--- a/drivers/net/ionic/ionic_dev.h
+++ b/drivers/net/ionic/ionic_dev.h
@@ -5,6 +5,8 @@ 
 #ifndef _IONIC_DEV_H_
 #define _IONIC_DEV_H_
 
+#include <stdbool.h>
+
 #include "ionic_osdep.h"
 #include "ionic_if.h"
 #include "ionic_regs.h"
diff --git a/drivers/net/ionic/ionic_mac_api.c b/drivers/net/ionic/ionic_mac_api.c
index 189b8b81a..40421fd4e 100644
--- a/drivers/net/ionic/ionic_mac_api.c
+++ b/drivers/net/ionic/ionic_mac_api.c
@@ -1,6 +1,7 @@ 
 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
  * Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
  */
+#include <stdbool.h>
 
 #include "ionic_mac_api.h"
 
diff --git a/drivers/net/ionic/ionic_main.c b/drivers/net/ionic/ionic_main.c
index b828d230d..9d74ec73e 100644
--- a/drivers/net/ionic/ionic_main.c
+++ b/drivers/net/ionic/ionic_main.c
@@ -1,6 +1,7 @@ 
 /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0)
  * Copyright(c) 2018-2019 Pensando Systems, Inc. All rights reserved.
  */
+#include <stdbool.h>
 
 #include <rte_memzone.h>
 
diff --git a/drivers/net/ionic/ionic_osdep.h b/drivers/net/ionic/ionic_osdep.h
index ecdbc24e6..e04bb8f65 100644
--- a/drivers/net/ionic/ionic_osdep.h
+++ b/drivers/net/ionic/ionic_osdep.h
@@ -44,12 +44,6 @@  typedef uint16_t __le16;
 typedef uint32_t __le32;
 typedef uint64_t __le64;
 
-#ifndef __cplusplus
-typedef uint8_t bool;
-#define false   0
-#define true    1
-#endif
-
 static inline uint32_t div_round_up(uint32_t n, uint32_t d)
 {
 	return (n + d - 1) / d;
diff --git a/drivers/net/ionic/ionic_rx_filter.c b/drivers/net/ionic/ionic_rx_filter.c
index f75b81a27..fe624538d 100644
--- a/drivers/net/ionic/ionic_rx_filter.c
+++ b/drivers/net/ionic/ionic_rx_filter.c
@@ -3,6 +3,7 @@ 
  */
 
 #include <errno.h>
+#include <stdbool.h>
 
 #include <rte_malloc.h>