From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: [PATCH v2] net/failsafe: fix FreeBSD build Date: Tue, 13 Feb 2018 23:13:24 +0100 Message-ID: <20180213221324.24524-1-thomas@monjalon.net> References: <20180213213312.22225-1-thomas@monjalon.net> Cc: dev@dpdk.org, gaetan.rivet@6wind.com To: matan@mellanox.com Return-path: Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by dpdk.org (Postfix) with ESMTP id 7A6BD160 for ; Tue, 13 Feb 2018 23:13:37 +0100 (CET) In-Reply-To: <20180213213312.22225-1-thomas@monjalon.net> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 --- v2: adapt printing to BSD and Linux --- 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 5b84db905..2d16ba4ca 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.15.1