Skip to content

Commit

Permalink
x86/bootflag: Replace open-coded parity calculation with parity8()
Browse files Browse the repository at this point in the history
Refactor parity calculations to use the standard parity8() helper. This
change eliminates redundant implementations and improves code
efficiency.

[ ubizjak: Updated the patch to apply to the latest x86 tree. ]

Co-developed-by: Yu-Chun Lin <eleanor15x@gmail.com>
Signed-off-by: Yu-Chun Lin <eleanor15x@gmail.com>
Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
Signed-off-by: Uros Bizjak <ubizjak@gmail.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Link: https://lore.kernel.org/r/20250227125616.2253774-1-ubizjak@gmail.com
  • Loading branch information
Kuan-Wei Chiu authored and Ingo Molnar committed Feb 27, 2025
1 parent adf6819 commit 9c94c14
Showing 1 changed file with 3 additions and 15 deletions.
18 changes: 3 additions & 15 deletions arch/x86/kernel/bootflag.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand All @@ -20,25 +21,12 @@

int sbf_port __initdata = -1; /* set via acpi_boot_init() */

static bool __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) {
if (!parity(v))
if (!parity8(v))
v ^= SBF_PARITY;

printk(KERN_INFO "Simple Boot Flag at 0x%x set to 0x%x\n",
Expand Down Expand Up @@ -69,7 +57,7 @@ static bool __init sbf_value_valid(u8 v)
{
if (v & SBF_RESERVED) /* Reserved bits */
return false;
if (!parity(v))
if (!parity8(v))
return false;

return true;
Expand Down

0 comments on commit 9c94c14

Please sign in to comment.