diff mbox series

[SRU,Xenial,1/2] s390/bitops: add for_each_set_bit_inv helper

Message ID 84cf72b1459a208cc8ae8a34fb3f4d49c0e6e89d.1518729588.git.joseph.salisbury@canonical.com
State New
Headers show
Series Fixes for LP:1744736 | expand

Commit Message

Joseph Salisbury Feb. 15, 2018, 9:28 p.m. UTC
From: Heiko Carstens <heiko.carstens@de.ibm.com>

BugLink: http://bugs.launchpad.net/bugs/1744736

Same helper function like for_each_set_bit in generic code.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
(cherry picked from commit 09214545c4a40943ecb6cedc511cd4bd709c85a6)
Signed-off-by: Joseph Salisbury <joseph.salisbury@canonical.com>
---
 arch/s390/include/asm/bitops.h | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Thadeu Lima de Souza Cascardo Feb. 27, 2018, 3:01 p.m. UTC | #1
Applied to xenial master-next branch.

Thanks.
Cascardo.

Applied-to: xenial/master-next
diff mbox series

Patch

diff --git a/arch/s390/include/asm/bitops.h b/arch/s390/include/asm/bitops.h
index 8043f10..4edb008 100644
--- a/arch/s390/include/asm/bitops.h
+++ b/arch/s390/include/asm/bitops.h
@@ -301,6 +301,11 @@  unsigned long find_first_bit_inv(const unsigned long *addr, unsigned long size);
 unsigned long find_next_bit_inv(const unsigned long *addr, unsigned long size,
 				unsigned long offset);
 
+#define for_each_set_bit_inv(bit, addr, size)				\
+	for ((bit) = find_first_bit_inv((addr), (size));		\
+	     (bit) < (size);						\
+	     (bit) = find_next_bit_inv((addr), (size), (bit) + 1))
+
 static inline void set_bit_inv(unsigned long nr, volatile unsigned long *ptr)
 {
 	return set_bit(nr ^ (BITS_PER_LONG - 1), ptr);