From: William Tu > Sent: 05 October 2017 22:21 ... > >> - if (skb->len > dev->mtu) { > >> + if (skb->len - dev->hard_header_len > dev->mtu) { > > > > Can you guarantee that skb->len > dev_hard_header_len? > > It is probably safer to check skb->len > dev->hard_header_len + dev->mtu > > since that addition isn't going to overflow. > Sure, I will fix it. > > > > >> pskb_trim(skb, dev->mtu); > >> truncate = true; > > > > Is that pskb_trim() now truncating to the correct size? > > You're right, now I should truncate to (dev->mtu + dev_hard_header_len)
It might be worth caching that length in the dev structure to avoid the arithmetic on every packet. David