Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Copyright (C) 2016 ARM Ltd.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) #ifndef __ASM_CHECKSUM_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) #define __ASM_CHECKSUM_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #include <linux/in6.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define _HAVE_ARCH_IPV6_CSUM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 			const struct in6_addr *daddr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 			__u32 len, __u8 proto, __wsum sum);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) static inline __sum16 csum_fold(__wsum csum)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	u32 sum = (__force u32)csum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	sum += (sum >> 16) | (sum << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	return ~(__force __sum16)(sum >> 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define csum_fold csum_fold
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	__uint128_t tmp;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	u64 sum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	int n = ihl; /* we want it signed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	tmp = *(const __uint128_t *)iph;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 	iph += 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	n -= 4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	tmp += ((tmp >> 64) | (tmp << 64));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	sum = tmp >> 64;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	do {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 		sum += *(const u32 *)iph;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 		iph += 4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	} while (--n > 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	sum += ((sum >> 32) | (sum << 32));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 	return csum_fold((__force u32)(sum >> 32));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) #define ip_fast_csum ip_fast_csum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) extern unsigned int do_csum(const unsigned char *buff, int len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define do_csum do_csum
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #include <asm-generic/checksum.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #endif	/* __ASM_CHECKSUM_H */