net: pktgen: Observe needed_headroom of the device
authorBogdan Hamciuc <bogdan.hamciuc@freescale.com>
Wed, 29 Jul 2015 09:45:58 +0000 (12:45 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 30 Jul 2015 06:00:39 +0000 (23:00 -0700)
Allocate enough space so as not to force the outgoing net device to do
skb_realloc_headroom().

Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/pktgen.c

index 1ebdf1c0d1188c309d854bc9145c9b2f5b7b58a4..5961da69cb03cbed39d3e6898a894fbf3b8617a9 100644 (file)
@@ -2279,7 +2279,7 @@ static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until)
 
 static inline void set_pkt_overhead(struct pktgen_dev *pkt_dev)
 {
-       pkt_dev->pkt_overhead = 0;
+       pkt_dev->pkt_overhead = LL_RESERVED_SPACE(pkt_dev->odev);
        pkt_dev->pkt_overhead += pkt_dev->nr_labels*sizeof(u32);
        pkt_dev->pkt_overhead += VLAN_TAG_SIZE(pkt_dev);
        pkt_dev->pkt_overhead += SVLAN_TAG_SIZE(pkt_dev);
@@ -2788,6 +2788,7 @@ static struct sk_buff *pktgen_alloc_skb(struct net_device *dev,
        } else {
                 skb = __netdev_alloc_skb(dev, size, GFP_NOWAIT);
        }
+       skb_reserve(skb, LL_RESERVED_SPACE(dev));
 
        return skb;
 }