bna: use netdev_alloc_skb_ip_align()
authorEric Dumazet <eric.dumazet@gmail.com>
Fri, 8 Jul 2011 05:29:30 +0000 (05:29 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Jul 2011 16:09:07 +0000 (09:09 -0700)
Some workloads need some headroom (NET_SKB_PAD) to avoid expensive
reallocations.

Using netdev_alloc_skb_ip_align() instead of bare skb_alloc() brings the
NET_IP_ALIGN and the NET_SKB_PAD headroom.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Rasesh Mody <rmody@brocade.com>
CC: Debashis Dutt <ddutt@brocade.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/bna/bnad.c

index 44e219c910daf4d33eec02d92724baa23395c229..795b93b73b1257767c6d9397ad7f7ebd4147ef21 100644 (file)
@@ -386,14 +386,12 @@ bnad_alloc_n_post_rxbufs(struct bnad *bnad, struct bna_rcb *rcb)
                        BNA_RXQ_QPGE_PTR_GET(unmap_prod, rcb->sw_qpt, rxent,
                                             wi_range);
                }
-               skb = alloc_skb(rcb->rxq->buffer_size + NET_IP_ALIGN,
-                                    GFP_ATOMIC);
+               skb = netdev_alloc_skb_ip_align(bnad->netdev,
+                                               rcb->rxq->buffer_size);
                if (unlikely(!skb)) {
                        BNAD_UPDATE_CTR(bnad, rxbuf_alloc_failed);
                        goto finishing;
                }
-               skb->dev = bnad->netdev;
-               skb_reserve(skb, NET_IP_ALIGN);
                unmap_array[unmap_prod].skb = skb;
                dma_addr = dma_map_single(&bnad->pcidev->dev, skb->data,
                                          rcb->rxq->buffer_size,