aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/compat/compat.h1
-rw-r--r--src/receive.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/compat/compat.h b/src/compat/compat.h
index 6223f9d..c4b20ae 100644
--- a/src/compat/compat.h
+++ b/src/compat/compat.h
@@ -149,6 +149,7 @@ static inline void netif_keep_dst(struct net_device *dev)
{
dev->priv_flags &= ~IFF_XMIT_DST_RELEASE;
}
+#define COMPAT_CANNOT_USE_CSUM_LEVEL
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 14, 0) && !defined(ISRHEL7)
diff --git a/src/receive.c b/src/receive.c
index 81140e9..5417ab9 100644
--- a/src/receive.c
+++ b/src/receive.c
@@ -386,7 +386,9 @@ static void wg_packet_consume_data_done(struct wg_peer *peer,
* again in software.
*/
skb->ip_summed = CHECKSUM_UNNECESSARY;
+#ifndef COMPAT_CANNOT_USE_CSUM_LEVEL
skb->csum_level = ~0; /* All levels */
+#endif
skb->protocol = wg_skb_examine_untrusted_ip_hdr(skb);
if (skb->protocol == htons(ETH_P_IP)) {
len = ntohs(ip_hdr(skb)->tot_len);