From 63be01796a53b0d286e96780211566b5c85c4fb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atte=20Peltom=C3=A4ki?= Date: Fri, 14 Feb 2025 02:18:41 +0200 Subject: [PATCH] arm: Inline missing reference to __bad_cmpxchg The ARM implementation of cmpxchg uses "__bad_cmpxchg" linker error to report use of cmpxchg on an unsupported size. This symbol isn't exported, so force inlining it if needed. --- poll_copy.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/poll_copy.c b/poll_copy.c index 8dbaf21..a1bcdff 100644 --- a/poll_copy.c +++ b/poll_copy.c @@ -45,7 +45,13 @@ static void poll_napi(struct net_device *dev, int budget) } } #else +#ifdef __arm__ +#if __LINUX_ARM_ARCH__ >= 6 +static __always_inline void __attribute__((optimize("O2", "-fno-omit-frame-pointer"))) poll_napi(struct net_device *dev, int budget) +#endif +#else static void __attribute__((optimize("O2", "-fno-omit-frame-pointer"))) poll_napi(struct net_device *dev, int budget) +#endif { struct napi_struct *napi; int cpu = smp_processor_id(); @@ -92,4 +98,4 @@ void netpoll_poll_dev_copy(struct net_device *dev, void(*zap_completion_queue)(v zap_completion_queue(); } -#endif \ No newline at end of file +#endif