Refactor parity calculations to use the standard parity8() helper. This
change eliminates redundant implementations and improves code
efficiency.

Co-developed-by: Yu-Chun Lin <eleanor...@gmail.com>
Signed-off-by: Yu-Chun Lin <eleanor...@gmail.com>
Signed-off-by: Kuan-Wei Chiu <visitor...@gmail.com>
---
 arch/x86/kernel/bootflag.c | 18 +++---------------
 1 file changed, 3 insertions(+), 15 deletions(-)

diff --git a/arch/x86/kernel/bootflag.c b/arch/x86/kernel/bootflag.c
index 3fed7ae58b60..314ff0e84900 100644
--- a/arch/x86/kernel/bootflag.c
+++ b/arch/x86/kernel/bootflag.c
@@ -8,6 +8,7 @@
 #include <linux/string.h>
 #include <linux/spinlock.h>
 #include <linux/acpi.h>
+#include <linux/bitops.h>
 #include <asm/io.h>
 
 #include <linux/mc146818rtc.h>
@@ -20,26 +21,13 @@
 
 int sbf_port __initdata = -1;  /* set via acpi_boot_init() */
 
-static int __init parity(u8 v)
-{
-       int x = 0;
-       int i;
-
-       for (i = 0; i < 8; i++) {
-               x ^= (v & 1);
-               v >>= 1;
-       }
-
-       return x;
-}
-
 static void __init sbf_write(u8 v)
 {
        unsigned long flags;
 
        if (sbf_port != -1) {
                v &= ~SBF_PARITY;
-               if (!parity(v))
+               if (!parity8(v))
                        v |= SBF_PARITY;
 
                printk(KERN_INFO "Simple Boot Flag at 0x%x set to 0x%x\n",
@@ -70,7 +58,7 @@ static int __init sbf_value_valid(u8 v)
 {
        if (v & SBF_RESERVED)           /* Reserved bits */
                return 0;
-       if (!parity(v))
+       if (!parity8(v))
                return 0;
 
        return 1;
-- 
2.34.1

Reply via email to