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/tunnel.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/tunnel.c')
-rw-r--r-- | pfinet/tunnel.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pfinet/tunnel.c b/pfinet/tunnel.c index e11ab670..b519ebd1 100644 --- a/pfinet/tunnel.c +++ b/pfinet/tunnel.c @@ -391,7 +391,8 @@ trivfs_S_io_write (struct trivfs_protid *cred, pthread_mutex_lock (&tdev->lock); 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->len = datalen; skb->dev = &tdev->dev; |