]> Git Repo - linux.git/commitdiff
include/uapi/linux/swab: Fix potentially missing __always_inline
authorMatt Redfearn <[email protected]>
Tue, 27 Sep 2022 21:52:56 +0000 (14:52 -0700)
committerArnd Bergmann <[email protected]>
Wed, 9 Nov 2022 13:06:51 +0000 (14:06 +0100)
Commit bc27fb68aaad ("include/uapi/linux/byteorder, swab: force inlining
of some byteswap operations") added __always_inline to swab functions
and commit 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to
userspace headers") added a definition of __always_inline for use in
exported headers when the kernel's compiler.h is not available.

However, since swab.h does not include stddef.h, if the header soup does
not indirectly include it, the definition of __always_inline is missing,
resulting in a compilation failure, which was observed compiling the
perf tool using exported headers containing this commit:

In file included from /usr/include/linux/byteorder/little_endian.h:12:0,
                 from /usr/include/asm/byteorder.h:14,
                 from tools/include/uapi/linux/perf_event.h:20,
                 from perf.h:8,
                 from builtin-bench.c:18:
/usr/include/linux/swab.h:160:8: error: unknown type name `__always_inline'
 static __always_inline __u16 __swab16p(const __u16 *p)

Fix this by replacing the inclusion of linux/compiler.h with
linux/stddef.h to ensure that we pick up that definition if required,
without relying on it's indirect inclusion. compiler.h is then included
indirectly, via stddef.h.

Fixes: 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to userspace headers")
Signed-off-by: Matt Redfearn <[email protected]>
Signed-off-by: Florian Fainelli <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
Tested-by: Nathan Chancellor <[email protected]>
Reviewed-by: Petr VanÄ›k <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
include/uapi/linux/swab.h

index 0723a9cce747c83cde23be9d52cdcd3e27edee73..01717181339eb0fb5128668ca13f38205c03fa28 100644 (file)
@@ -3,7 +3,7 @@
 #define _UAPI_LINUX_SWAB_H
 
 #include <linux/types.h>
-#include <linux/compiler.h>
+#include <linux/stddef.h>
 #include <asm/bitsperlong.h>
 #include <asm/swab.h>
 
This page took 0.065068 seconds and 4 git commands to generate.