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

From: Chin-Chun Chen
Date: Sat Apr 13 2024 - 02:22:03 EST


Modified the function fns to resolve a calculation error by:
1. Reducing n first.
2. Adding 1 at the end to get the correct index.

This commit improves the accuracy and reliability of the code.

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

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

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


base-commit: 8f2c057754b25075aa3da132cd4fd4478cdab854
--
2.40.1