summaryrefslogtreecommitdiff
path: root/net/mac80211
diff options
context:
space:
mode:
authorNathan Chancellor <natechancellor@gmail.com>2019-01-16 06:20:11 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-03-05 17:58:00 +0100
commit779f4513ec9eea8b377ee4e7c0be3fd5aabdcd88 (patch)
treedb2df27204d626043eed6bdea785208face47e3b /net/mac80211
parent8d7a522437beb95f3a55fe3c4a6cb5013399c2ec (diff)
staging: rtl8723bs: Fix build error with Clang when inlining is disabled
[ Upstream commit 97715058b70da1262fd07798c8b2e3e894f759dd ] When CONFIG_NO_AUTO_INLINE was present in linux-next (which added '-fno-inline-functions' to KBUILD_CFLAGS), an allyesconfig build with Clang failed at the modpost stage: ERROR: "is_broadcast_mac_addr" [drivers/staging/rtl8723bs/r8723bs.ko] undefined! ERROR: "is_zero_mac_addr" [drivers/staging/rtl8723bs/r8723bs.ko] undefined! ERROR: "is_multicast_mac_addr" [drivers/staging/rtl8723bs/r8723bs.ko] undefined! These functions were marked as extern inline, meaning that if inlining doesn't happen, the function will be undefined, as it is above. This happens to work with GCC because the '-fno-inline-functions' option respects the __inline attribute so all instances of these functions are inlined as expected and the definition doesn't actually matter. However, with Clang and '-fno-inline-functions', a function has to be marked with the __always_inline attribute to be considered for inlining, which none of these functions are. Clang tries to find the symbol definition elsewhere as it was told and fails, which trickles down to modpost. To make sure that this code compiles regardless of compiler and make the intention of the code clearer, use 'static' to ensure these functions are always defined, regardless of inlining. Additionally, silence a checkpatch warning by switching from '__inline' to 'inline'. Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net/mac80211')
0 files changed, 0 insertions, 0 deletions