--- zzzz-none-000/linux-4.4.271/include/net/inet_ecn.h 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/include/net/inet_ecn.h 2023-04-19 10:22:30.000000000 +0000 @@ -127,7 +127,8 @@ from = *(__be32 *)iph; to = from | htonl(INET_ECN_CE << 20); - *(__be32 *)iph = to; + net_hdr_word(iph) |= htonl(INET_ECN_CE << 20); + if (skb->ip_summed == CHECKSUM_COMPLETE) skb->csum = csum_add(csum_sub(skb->csum, (__force __wsum)from), (__force __wsum)to); @@ -136,7 +137,7 @@ static inline void IP6_ECN_clear(struct ipv6hdr *iph) { - *(__be32*)iph &= ~htonl(INET_ECN_MASK << 20); + net_hdr_word(iph) &= ~htonl(INET_ECN_MASK << 20); } static inline void ipv6_copy_dscp(unsigned int dscp, struct ipv6hdr *inner)