[PATCH v2] include/linux/bitops.h: Fix function fns

From: Chin-Chun Chen
Date: Sat Apr 13 2024 - 12:15:48 EST


Modified the function fns to resolve a calculation error by reducing n first to correctly determine the n-th set bit instead of n+1.

This commit improves the accuracy and reliability of the code.
---
Changes since v1:
* Clarified the commit message.
* Fixed the incorrect operation.

Signed-off-by: Chin-Chun Chen <chinchunchen2001@xxxxxxxxx>
---
include/linux/bitops.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/bitops.h b/include/linux/bitops.h
index 2ba557e067fe..5842d7d03f19 100644
--- a/include/linux/bitops.h
+++ b/include/linux/bitops.h
@@ -258,7 +258,7 @@ static inline unsigned long fns(unsigned long word, unsigned int n)

while (word) {
bit = __ffs(word);
- if (n-- == 0)
+ if (--n == 0)
return bit;
__clear_bit(bit, &word);
}

base-commit: 8f2c057754b25075aa3da132cd4fd4478cdab854
--
2.40.1