| From 9c7d8d7385b39254b1727b6cdb130e0b3a2afcda Mon Sep 17 00:00:00 2001 |
| From: Christian Borntraeger <borntraeger@de.ibm.com> |
| Date: Thu, 20 Feb 2020 20:04:03 -0800 |
| Subject: [PATCH] include/uapi/linux/swab.h: fix userspace breakage, use |
| __BITS_PER_LONG for swap |
| |
| commit 467d12f5c7842896d2de3ced74e4147ee29e97c8 upstream. |
| |
| QEMU has a funny new build error message when I use the upstream kernel |
| headers: |
| |
| CC block/file-posix.o |
| In file included from /home/cborntra/REPOS/qemu/include/qemu/timer.h:4, |
| from /home/cborntra/REPOS/qemu/include/qemu/timed-average.h:29, |
| from /home/cborntra/REPOS/qemu/include/block/accounting.h:28, |
| from /home/cborntra/REPOS/qemu/include/block/block_int.h:27, |
| from /home/cborntra/REPOS/qemu/block/file-posix.c:30: |
| /usr/include/linux/swab.h: In function `__swab': |
| /home/cborntra/REPOS/qemu/include/qemu/bitops.h:20:34: error: "sizeof" is not defined, evaluates to 0 [-Werror=undef] |
| 20 | #define BITS_PER_LONG (sizeof (unsigned long) * BITS_PER_BYTE) |
| | ^~~~~~ |
| /home/cborntra/REPOS/qemu/include/qemu/bitops.h:20:41: error: missing binary operator before token "(" |
| 20 | #define BITS_PER_LONG (sizeof (unsigned long) * BITS_PER_BYTE) |
| | ^ |
| cc1: all warnings being treated as errors |
| make: *** [/home/cborntra/REPOS/qemu/rules.mak:69: block/file-posix.o] Error 1 |
| rm tests/qemu-iotests/socket_scm_helper.o |
| |
| This was triggered by commit d5767057c9a ("uapi: rename ext2_swab() to |
| swab() and share globally in swab.h"). That patch is doing |
| |
| #include <asm/bitsperlong.h> |
| |
| but it uses BITS_PER_LONG. |
| |
| The kernel file asm/bitsperlong.h provide only __BITS_PER_LONG. |
| |
| Let us use the __ variant in swap.h |
| |
| Link: http://lkml.kernel.org/r/20200213142147.17604-1-borntraeger@de.ibm.com |
| Fixes: d5767057c9a ("uapi: rename ext2_swab() to swab() and share globally in swab.h") |
| Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> |
| Cc: Yury Norov <yury.norov@gmail.com> |
| Cc: Allison Randal <allison@lohutok.net> |
| Cc: Joe Perches <joe@perches.com> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: William Breathitt Gray <vilhelm.gray@gmail.com> |
| Cc: Torsten Hilbrich <torsten.hilbrich@secunet.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h |
| index fa7f97da5b76..7272f85d6d6a 100644 |
| --- a/include/uapi/linux/swab.h |
| +++ b/include/uapi/linux/swab.h |
| @@ -135,9 +135,9 @@ static inline __attribute_const__ __u32 __fswahb32(__u32 val) |
| |
| static __always_inline unsigned long __swab(const unsigned long y) |
| { |
| -#if BITS_PER_LONG == 64 |
| +#if __BITS_PER_LONG == 64 |
| return __swab64(y); |
| -#else /* BITS_PER_LONG == 32 */ |
| +#else /* __BITS_PER_LONG == 32 */ |
| return __swab32(y); |
| #endif |
| } |
| -- |
| 2.7.4 |
| |