aboutsummaryrefslogtreecommitdiff
path: root/pfinet/tunnel.c
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-19 22:24:32 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2023-02-19 22:26:47 +0100
commit67efb746c492c25fac4d77aa16b808a8aa26089d (patch)
tree3031425a1909281b06a0b69600bb4f00cb0c3ca2 /pfinet/tunnel.c
parentb8bcd4eb1438721f6a52bfd1e458307d4e105d89 (diff)
downloadhurd-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.c3
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;