Commit 9c94c14c authored by Kuan-Wei Chiu's avatar Kuan-Wei Chiu Committed by Ingo Molnar
Browse files

x86/bootflag: Replace open-coded parity calculation with parity8()



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: default avatarYu-Chun Lin <eleanor15x@gmail.com>
Signed-off-by: default avatarYu-Chun Lin <eleanor15x@gmail.com>
Signed-off-by: default avatarKuan-Wei Chiu <visitorckw@gmail.com>
Signed-off-by: default avatarUros Bizjak <ubizjak@gmail.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Link: https://lore.kernel.org/r/20250227125616.2253774-1-ubizjak@gmail.com
parent adf68192
Loading
Loading
Loading
Loading
+3 −15
Original line number Diff line number Diff line
@@ -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,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",
@@ -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;