On Wed, Apr 09, 2025 at 12:59:14PM -0400, Yury Norov wrote:
On Wed, Apr 09, 2025 at 11:43:44PM +0800, Kuan-Wei Chiu wrote:
Redesign the parity8() helper as parity_odd(), changing its input type
from u8 to u64 to support broader use cases and its return type from
int to bool to clearly reflect the function's binary output. The
function now returns true for odd parity and false for even parity,
making its behavior more intuitive based on the name.
Also mark the function with __attribute_const__ to enable better
compiler optimization, as the result depends solely on its input and
has no side effects.
While more efficient implementations may exist, further optimization is
postponed until a use case in performance-critical paths arises.
Co-developed-by: Yu-Chun Lin <eleanor15x@xxxxxxxxx>
Signed-off-by: Yu-Chun Lin <eleanor15x@xxxxxxxxx>
Signed-off-by: Kuan-Wei Chiu <visitorckw@xxxxxxxxx>
---
arch/x86/kernel/bootflag.c | 4 ++--
drivers/hwmon/spd5118.c | 2 +-
drivers/i3c/master/dw-i3c-master.c | 2 +-
drivers/i3c/master/i3c-master-cdns.c | 2 +-
drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 2 +-
include/linux/bitops.h | 19 ++++++++++++-------
6 files changed, 18 insertions(+), 13 deletions(-)
diff --git a/arch/x86/kernel/bootflag.c b/arch/x86/kernel/bootflag.c
index 73274d76ce16..86aae4b2bfd5 100644
--- a/arch/x86/kernel/bootflag.c
+++ b/arch/x86/kernel/bootflag.c
@@ -26,7 +26,7 @@ static void __init sbf_write(u8 v)
unsigned long flags;
if (sbf_port != -1) {
- if (!parity8(v))
+ if (!parity_odd(v))