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.thak...@arm.com> > Reviewed-by: Phil Yang <phil.y...@arm.com> > Reviewed-by: Gavin Hu <gavin...@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++) {