Lines Matching +full:64 +full:-
1 // SPDX-License-Identifier: GPL-2.0-only
2 // Copyright (C) 2019-2020 Arm Ltd.
6 #include <linux/kasan-checks.h>
20 * We over-read the buffer and this makes KASAN unhappy. Instead, disable
36 * should absolutely not be pointing to anything read-sensitive. We do, in do_csum()
39 * compensate with an explicit check up-front. in do_csum()
42 ptr = (u64 *)(buff - offset); in do_csum()
43 len = len + offset - 8; in do_csum()
60 while (unlikely(len > 64)) { in do_csum()
68 len -= 64; in do_csum()
72 tmp1 += (tmp1 >> 64) | (tmp1 << 64); in do_csum()
73 tmp2 += (tmp2 >> 64) | (tmp2 << 64); in do_csum()
74 tmp3 += (tmp3 >> 64) | (tmp3 << 64); in do_csum()
75 tmp4 += (tmp4 >> 64) | (tmp4 << 64); in do_csum()
76 tmp1 = ((tmp1 >> 64) << 64) | (tmp2 >> 64); in do_csum()
77 tmp1 += (tmp1 >> 64) | (tmp1 << 64); in do_csum()
78 tmp3 = ((tmp3 >> 64) << 64) | (tmp4 >> 64); in do_csum()
79 tmp3 += (tmp3 >> 64) | (tmp3 << 64); in do_csum()
80 tmp1 = ((tmp1 >> 64) << 64) | (tmp3 >> 64); in do_csum()
81 tmp1 += (tmp1 >> 64) | (tmp1 << 64); in do_csum()
82 tmp1 = ((tmp1 >> 64) << 64) | sum64; in do_csum()
83 tmp1 += (tmp1 >> 64) | (tmp1 << 64); in do_csum()
84 sum64 = tmp1 >> 64; in do_csum()
92 len -= 16; in do_csum()
95 data = tmp >> 64; in do_csum()
101 len -= 8; in do_csum()
104 * Tail: zero any over-read bytes similarly to the head, again in do_csum()
107 shift = len * -8; in do_csum()
128 src = *(const __uint128_t *)saddr->s6_addr; in csum_ipv6_magic()
129 dst = *(const __uint128_t *)daddr->s6_addr; in csum_ipv6_magic()
133 src += (src >> 64) | (src << 64); in csum_ipv6_magic()
134 dst += (dst >> 64) | (dst << 64); in csum_ipv6_magic()
136 sum = accumulate(sum, src >> 64); in csum_ipv6_magic()
137 sum = accumulate(sum, dst >> 64); in csum_ipv6_magic()