From 3344fb8fa4dd285647730fb3d8eba9ea12ca2d79 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Tue, 13 Feb 2018 22:23:35 +0100 Subject: [PATCH] net/failsafe: fix FreeBSD build The type pthread_t is not portable because it is freely defined. On Linux, it is an unsigned long int which can be printed with %l. On FreeBSD, it is a pointer which can be printed with %p. That's why there was this error: drivers/net/failsafe/failsafe_private.h:377:53: error: format specifies type 'unsigned long' but the argument has type 'pthread_t' (aka 'struct pthread *') Fixes: 655fcd68c7d2 ("net/failsafe: fix hotplug races") Reported-by: Pablo de Lara Signed-off-by: Thomas Monjalon Tested-by: Pablo de Lara Acked-by: Matan Azrad --- drivers/net/failsafe/failsafe_private.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h index 5b84db9056..2d16ba4ca1 100644 --- a/drivers/net/failsafe/failsafe_private.h +++ b/drivers/net/failsafe/failsafe_private.h @@ -318,6 +318,14 @@ extern int mac_from_arg; &((struct txq *)((s)->fs_dev->data->tx_queues[i]))->refcnt[(s)->sid] \ ) +#ifdef RTE_EXEC_ENV_BSDAPP +#define FS_THREADID_TYPE void* +#define FS_THREADID_FMT "p" +#else +#define FS_THREADID_TYPE unsigned long +#define FS_THREADID_FMT "lu" +#endif + #define LOG__(level, m, ...) \ RTE_LOG(level, PMD, "net_failsafe: " m "%c", __VA_ARGS__) #define LOG_(level, ...) LOG__(level, __VA_ARGS__, '\n') @@ -374,7 +382,8 @@ fs_lock(struct rte_eth_dev *dev, unsigned int is_alarm) return ret; } } - DEBUG("Hot-plug mutex was locked by thread %lu%s", pthread_self(), + DEBUG("Hot-plug mutex was locked by thread %" FS_THREADID_FMT "%s", + (FS_THREADID_TYPE)pthread_self(), PRIV(dev)->alarm_lock ? " by the hot-plug alarm" : ""); return ret; } @@ -397,8 +406,8 @@ fs_unlock(struct rte_eth_dev *dev, unsigned int is_alarm) if (ret) ERROR("Cannot unlock hot-plug mutex(%s)", strerror(ret)); else - DEBUG("Hot-plug mutex was unlocked by thread %lu%s", - pthread_self(), + DEBUG("Hot-plug mutex was unlocked by thread %" FS_THREADID_FMT "%s", + (FS_THREADID_TYPE)pthread_self(), prev_alarm_lock ? " by the hot-plug alarm" : ""); } -- 2.20.1