diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-02-19 22:24:32 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-02-19 22:26:47 +0100 |
commit | 67efb746c492c25fac4d77aa16b808a8aa26089d (patch) | |
tree | 3031425a1909281b06a0b69600bb4f00cb0c3ca2 /pfinet/ethernet.c | |
parent | b8bcd4eb1438721f6a52bfd1e458307d4e105d89 (diff) | |
download | hurd-67efb746c492c25fac4d77aa16b808a8aa26089d.tar.gz hurd-67efb746c492c25fac4d77aa16b808a8aa26089d.tar.bz2 hurd-67efb746c492c25fac4d77aa16b808a8aa26089d.zip |
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.
Diffstat (limited to 'pfinet/ethernet.c')
-rw-r--r-- | pfinet/ethernet.c | 3 |
1 files changed, 2 insertions, 1 deletions
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; |