[dpdk-dev] [PATCH v2 1/7] net/ixgbe: avoid multpile definitions of 'bool'
Ferruh Yigit
ferruh.yigit at intel.com
Fri Jan 10 10:22:01 CET 2020
On 1/2/2020 5:48 PM, Dharmik Thakkar wrote:
> Compilation issue arises due to multiple definitions of 'bool'
> in 'ixgbe_ethdev.h'.
>
> Error:
> '/dpdk/drivers/net/ixgbe/ixgbe_ethdev.c: In function
> ‘ixgbe_dev_setup_link_alarm_handler’:
> /dpdk/drivers/net/ixgbe/ixgbe_ethdev.c:4075:43:
> error: passing argument 3 of ‘ixgbe_get_link_capabilities’ from
> incompatible pointer type [-Werror=incompatible-pointer-types]
> ixgbe_get_link_capabilities(hw, &speed, &autoneg);
> ^
> In file included from /dpdk/drivers/net/ixgbe/ixgbe_ethdev.c:41:0:
> /dpdk/drivers/net/ixgbe/base/ixgbe_api.h:63:5: note: expected
> ‘bool * {aka int *}’ but argument is of type ‘_Bool *’'
>
> Signed-off-by: Dharmik Thakkar <dharmik.thakkar at arm.com>
> Reviewed-by: Phil Yang <phil.yang at arm.com>
> Reviewed-by: Gavin Hu <gavin.hu at arm.com>
> ---
> drivers/net/ixgbe/base/ixgbe_osdep.h | 4 +---
> drivers/net/ixgbe/ixgbe_ethdev.c | 7 ++++---
> 2 files changed, 5 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ixgbe/base/ixgbe_osdep.h b/drivers/net/ixgbe/base/ixgbe_osdep.h
> index ea8dc1cbe570..844d1701f595 100644
> --- a/drivers/net/ixgbe/base/ixgbe_osdep.h
> +++ b/drivers/net/ixgbe/base/ixgbe_osdep.h
> @@ -9,6 +9,7 @@
> #include <stdint.h>
> #include <stdio.h>
> #include <stdarg.h>
> +#include <stdbool.h>
> #include <rte_common.h>
> #include <rte_debug.h>
> #include <rte_cycles.h>
> @@ -82,9 +83,6 @@ typedef int16_t s16;
> typedef uint32_t u32;
> typedef int32_t s32;
> typedef uint64_t u64;
> -#ifndef __cplusplus
> -typedef int bool;
> -#endif
>
> #define mb() rte_mb()
> #define wmb() rte_wmb()
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 2c6fd0f13128..6cbd783e3a21 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -2544,7 +2544,8 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
> struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
> struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
> uint32_t intr_vector = 0;
> - int err, link_up = 0, negotiate = 0;
> + int err;
> + bool link_up = 0, negotiate = 0;
> uint32_t speed = 0;
> uint32_t allowed_speeds = 0;
> int mask = 0;
> @@ -3993,7 +3994,7 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev,
>
> static int
> ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
> - int *link_up, int wait_to_complete)
> + bool *link_up, int wait_to_complete)
> {
> struct ixgbe_adapter *adapter = container_of(hw,
> struct ixgbe_adapter, hw);
> @@ -4124,7 +4125,7 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
> ixgbe_link_speed link_speed = IXGBE_LINK_SPEED_UNKNOWN;
> struct ixgbe_interrupt *intr =
> IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
> - int link_up;
> + bool link_up;
> int diag;
> int wait = 1;
> u32 esdp_reg;
>
Can you please rebase the patchset on of next-net, getting following build error
[1] because of a commit in next-net [2], the fix should be trivial [3].
CI seems not able to catch this, Cc'ed Aaron, Ali & Zhaoyan & Jeremy if they
want to investigate the issue.
[1]
.../drivers/net/ixgbe/ixgbe_ethdev.c:4137:38: error: incompatible pointer types
passing 'int *' to parameter of type 'bool *' [-Werror,-Wincompatible-pointer-types]
err = ixgbe_check_link(hw, &speed, &link_up, 0);
^~~~~~~~
.../drivers/net/ixgbe/base/ixgbe_api.h:62:14: note: passing argument to
parameter 'link_up' here
bool *link_up, bool link_up_wait_to_complete);
^
[2]
commit 2f2639c872c8 ("net/ixgbe: fix port can not link up in FreeBSD")
[3]
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 414b73c97..4f1704e79 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -4130,7 +4130,8 @@ ixgbe_wait_for_link_up(struct ixgbe_hw *hw)
#else
const int nb_iter = 0;
#endif
- int err, i, link_up = 0;
+ int err, i = 0;
+ bool link_up = false;
uint32_t speed = 0;
for (i = 0; i < nb_iter; i++) {
More information about the dev
mailing list