pktgen: use netdev_alloc_skb
authorStephen Hemminger <shemminger@vyatta.com>
Thu, 27 Aug 2009 13:55:13 +0000 (13:55 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Aug 2009 06:32:04 +0000 (23:32 -0700)
netdev_alloc_skb is NUMA node aware.
Also, don't exhaust atomic emergency pool. Don't want pktgen
to cause OOM behaviour.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/pktgen.c

index 90d48cc..2456bd5 100644 (file)
@@ -2539,8 +2539,9 @@ static struct sk_buff *fill_packet_ipv4(struct net_device *odev,
        mod_cur_headers(pkt_dev);
 
        datalen = (odev->hard_header_len + 16) & ~0xf;
-       skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + datalen +
-                       pkt_dev->pkt_overhead, GFP_ATOMIC);
+       skb = __netdev_alloc_skb(odev,
+                                pkt_dev->cur_pkt_size + 64
+                                + datalen + pkt_dev->pkt_overhead, GFP_NOWAIT);
        if (!skb) {
                sprintf(pkt_dev->result, "No memory");
                return NULL;
@@ -2878,8 +2879,9 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev,
        queue_map = pkt_dev->cur_queue_map;
        mod_cur_headers(pkt_dev);
 
-       skb = alloc_skb(pkt_dev->cur_pkt_size + 64 + 16 +
-                       pkt_dev->pkt_overhead, GFP_ATOMIC);
+       skb = __netdev_alloc_skb(odev,
+                                pkt_dev->cur_pkt_size + 64
+                                + 16 + pkt_dev->pkt_overhead, GFP_NOWAIT);
        if (!skb) {
                sprintf(pkt_dev->result, "No memory");
                return NULL;