crypto: ecc - Silence sparse warning
authorHerbert Xu <herbert@gondor.apana.org.au>
Mon, 6 Feb 2023 04:53:38 +0000 (12:53 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 14 Feb 2023 05:39:33 +0000 (13:39 +0800)
Rewrite the bitwise operations to silence the sparse warnings:

  CHECK   ../crypto/ecc.c
../crypto/ecc.c:1387:39: warning: dubious: !x | y
../crypto/ecc.c:1397:47: warning: dubious: !x | y

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: Vitaly Chikunov <vt@altlinux.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/ecc.c

index 7315217c8f7339ad45a2ef92aa4632715bdaf438..f53fb4d6af992baea996779a1e48b8e43bd6cc55 100644 (file)
@@ -1384,7 +1384,8 @@ void ecc_point_mult_shamir(const struct ecc_point *result,
 
        num_bits = max(vli_num_bits(u1, ndigits), vli_num_bits(u2, ndigits));
        i = num_bits - 1;
-       idx = (!!vli_test_bit(u1, i)) | ((!!vli_test_bit(u2, i)) << 1);
+       idx = !!vli_test_bit(u1, i);
+       idx |= (!!vli_test_bit(u2, i)) << 1;
        point = points[idx];
 
        vli_set(rx, point->x, ndigits);
@@ -1394,7 +1395,8 @@ void ecc_point_mult_shamir(const struct ecc_point *result,
 
        for (--i; i >= 0; i--) {
                ecc_point_double_jacobian(rx, ry, z, curve);
-               idx = (!!vli_test_bit(u1, i)) | ((!!vli_test_bit(u2, i)) << 1);
+               idx = !!vli_test_bit(u1, i);
+               idx |= (!!vli_test_bit(u2, i)) << 1;
                point = points[idx];
                if (point) {
                        u64 tx[ECC_MAX_DIGITS];