]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.19-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Nov 2022 08:10:53 +0000 (09:10 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Nov 2022 08:10:53 +0000 (09:10 +0100)
added patches:
linux-bits.h-make-bit-genmask-and-friends-available-in-assembly.patch

queue-4.19/linux-bits.h-make-bit-genmask-and-friends-available-in-assembly.patch [new file with mode: 0644]
queue-4.19/series

diff --git a/queue-4.19/linux-bits.h-make-bit-genmask-and-friends-available-in-assembly.patch b/queue-4.19/linux-bits.h-make-bit-genmask-and-friends-available-in-assembly.patch
new file mode 100644 (file)
index 0000000..e5f21bd
--- /dev/null
@@ -0,0 +1,83 @@
+From 95b980d62d52c4c1768ee719e8db3efe27ef52b2 Mon Sep 17 00:00:00 2001
+From: Masahiro Yamada <yamada.masahiro@socionext.com>
+Date: Tue, 16 Jul 2019 16:26:57 -0700
+Subject: linux/bits.h: make BIT(), GENMASK(), and friends available in assembly
+
+From: Masahiro Yamada <yamada.masahiro@socionext.com>
+
+commit 95b980d62d52c4c1768ee719e8db3efe27ef52b2 upstream.
+
+BIT(),  GENMASK(), etc. are useful to define register bits of hardware.
+However, low-level code is often written in assembly, where they are
+not available due to the hard-coded 1UL, 0UL.
+
+In fact, in-kernel headers such as arch/arm64/include/asm/sysreg.h
+use _BITUL() instead of BIT() so that the register bit macros are
+available in assembly.
+
+Using macros in include/uapi/linux/const.h have two reasons:
+
+[1] For use in uapi headers
+  We should use underscore-prefixed variants for user-space.
+
+[2] For use in assembly code
+  Since _BITUL() uses UL(1) instead of 1UL, it can be used as an
+  alternative of BIT().
+
+For [2], it is pretty easy to change BIT() etc. for use in assembly.
+
+This allows to replace _BUTUL() in kernel-space headers with BIT().
+
+Link: http://lkml.kernel.org/r/20190609153941.17249-1-yamada.masahiro@socionext.com
+Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
+Cc: Catalin Marinas <catalin.marinas@arm.com>
+Cc: Christian Borntraeger <borntraeger@de.ibm.com>
+Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
+Cc: Vasily Gorbik <gor@linux.ibm.com>
+Cc: Vineet Gupta <vgupta@synopsys.com>
+Cc: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Nick Desaulniers <ndesaulniers@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/linux/bits.h |   17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+--- a/include/linux/bits.h
++++ b/include/linux/bits.h
+@@ -1,13 +1,15 @@
+ /* SPDX-License-Identifier: GPL-2.0 */
+ #ifndef __LINUX_BITS_H
+ #define __LINUX_BITS_H
++
++#include <linux/const.h>
+ #include <asm/bitsperlong.h>
+-#define BIT(nr)                       (1UL << (nr))
+-#define BIT_ULL(nr)           (1ULL << (nr))
+-#define BIT_MASK(nr)          (1UL << ((nr) % BITS_PER_LONG))
++#define BIT(nr)                       (UL(1) << (nr))
++#define BIT_ULL(nr)           (ULL(1) << (nr))
++#define BIT_MASK(nr)          (UL(1) << ((nr) % BITS_PER_LONG))
+ #define BIT_WORD(nr)          ((nr) / BITS_PER_LONG)
+-#define BIT_ULL_MASK(nr)      (1ULL << ((nr) % BITS_PER_LONG_LONG))
++#define BIT_ULL_MASK(nr)      (ULL(1) << ((nr) % BITS_PER_LONG_LONG))
+ #define BIT_ULL_WORD(nr)      ((nr) / BITS_PER_LONG_LONG)
+ #define BITS_PER_BYTE         8
+@@ -17,10 +19,11 @@
+  * GENMASK_ULL(39, 21) gives us the 64bit vector 0x000000ffffe00000.
+  */
+ #define GENMASK(h, l) \
+-      (((~0UL) - (1UL << (l)) + 1) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
++      (((~UL(0)) - (UL(1) << (l)) + 1) & \
++       (~UL(0) >> (BITS_PER_LONG - 1 - (h))))
+ #define GENMASK_ULL(h, l) \
+-      (((~0ULL) - (1ULL << (l)) + 1) & \
+-       (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h))))
++      (((~ULL(0)) - (ULL(1) << (l)) + 1) & \
++       (~ULL(0) >> (BITS_PER_LONG_LONG - 1 - (h))))
+ #endif        /* __LINUX_BITS_H */
index 48bf69056ba777c5e005ca24dc374932da07bb5c..91ac7b06f436babd1488bf985844a4df72982e7d 100644 (file)
@@ -44,3 +44,4 @@ kvm-x86-mask-off-reserved-bits-in-cpuid.80000008h.patch
 kvm-x86-emulator-em_sysexit-should-update-ctxt-mode.patch
 kvm-x86-emulator-introduce-emulator_recalc_and_set_mode.patch
 kvm-x86-emulator-update-the-emulation-mode-after-cr0-write.patch
+linux-bits.h-make-bit-genmask-and-friends-available-in-assembly.patch