[PATCH v3 16/16] nfp: bpf: Replace open-coded parity calculation with parity64()

Kuan-Wei Chiu
2025-03-06T17:34:08Z

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

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>
---
Changes in v3:
- Change parity64() to !!parity64().

drivers/net/ethernet/netronome/nfp/nfp_asm.c | 7 +------
1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/net/ethernet/netronome/nfp/nfp_asm.c b/drivers/net/ethernet/netronome/nfp/nfp_asm.c
index 154399c5453f..14306f128497 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_asm.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_asm.c
@@ -295,11 +295,6 @@ static const u64 nfp_ustore_ecc_polynomials[NFP_USTORE_ECC_POLY_WORDS] = {
0x0daf69a46910ULL,
};

-static bool parity(u64 value)
-{
- return hweight64(value) & 1;
-}
-
int nfp_ustore_check_valid_no_ecc(u64 insn)
{
if (insn & ~GENMASK_ULL(NFP_USTORE_OP_BITS, 0))
@@ -314,7 +309,7 @@ u64 nfp_ustore_calc_ecc_insn(u64 insn)
int i;

for (i = 0; i < NFP_USTORE_ECC_POLY_WORDS; i++)
- ecc |= parity(nfp_ustore_ecc_polynomials[i] & insn) << i;
+ ecc |= !!parity64(nfp_ustore_ecc_polynomials[i] & insn) << i;

return insn | (u64)ecc << NFP_USTORE_OP_BITS;
}
--
2.34.1