From 67efb746c492c25fac4d77aa16b808a8aa26089d Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 19 Feb 2023 22:24:32 +0100 Subject: pfinet: Align packets The Ethernet header is 14 bytes long, and thus leads to IP header misalignment. This uses skb_reserve to introduce 2 bytes of padding to realign IP headers. --- pfinet/ethernet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'pfinet/ethernet.c') diff --git a/pfinet/ethernet.c b/pfinet/ethernet.c index c317820c..82c318b2 100644 --- a/pfinet/ethernet.c +++ b/pfinet/ethernet.c @@ -153,7 +153,8 @@ ethernet_demuxer (mach_msg_header_t *inp, + msg->packet_type.msgt_number - sizeof (struct packet_header); pthread_mutex_lock (&net_bh_lock); - skb = alloc_skb (datalen, GFP_ATOMIC); + skb = alloc_skb (NET_IP_ALIGN + datalen, GFP_ATOMIC); + skb_reserve(skb, NET_IP_ALIGN); skb_put (skb, datalen); skb->dev = dev; -- cgit v1.2.3