| From a6711efd424e9d4d11467ec72f7689aacf0c6ef1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 27 Sep 2022 14:52:56 -0700 |
| Subject: include/uapi/linux/swab: Fix potentially missing __always_inline |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Matt Redfearn <matt.redfearn@mips.com> |
| |
| [ Upstream commit defbab270d45e32b068e7e73c3567232d745c60f ] |
| |
| 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 <matt.redfearn@mips.com> |
| Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Tested-by: Nathan Chancellor <nathan@kernel.org> |
| Reviewed-by: Petr Vaněk <arkamar@atlas.cz> |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| include/uapi/linux/swab.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h |
| index 0723a9cce747..01717181339e 100644 |
| --- a/include/uapi/linux/swab.h |
| +++ b/include/uapi/linux/swab.h |
| @@ -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> |
| |
| -- |
| 2.35.1 |
| |