From: Stephen Hemminger Date: Fri, 13 Oct 2006 16:11:59 +0000 (+0200) Subject: sky2: use dev_alloc_skb for receive buffers X-Git-Tag: v2.6.16.30-rc1~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=60ae1edc99701dbee1e04ba41f407770b24fc6ac;p=people%2Fms%2Flinux.git sky2: use dev_alloc_skb for receive buffers Several code paths assume an additional 16 bytes of header padding on the receive path. Use dev_alloc_skb to get that padding. Signed-off-by: Stephen Hemminger Signed-off-by: Adrian Bunk --- diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c index 0618cd55aa36..e939d165c78f 100644 --- a/drivers/net/sky2.c +++ b/drivers/net/sky2.c @@ -943,14 +943,14 @@ static void sky2_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid) /* * It appears the hardware has a bug in the FIFO logic that * cause it to hang if the FIFO gets overrun and the receive buffer - * is not aligned. ALso alloc_skb() won't align properly if slab + * is not aligned. Also dev_alloc_skb() won't align properly if slab * debugging is enabled. */ static inline struct sk_buff *sky2_alloc_skb(unsigned int size, gfp_t gfp_mask) { struct sk_buff *skb; - skb = alloc_skb(size + RX_SKB_ALIGN, gfp_mask); + skb = __dev_alloc_skb(size + RX_SKB_ALIGN, gfp_mask); if (likely(skb)) { unsigned long p = (unsigned long) skb->data; skb_reserve(skb, @@ -1808,7 +1808,7 @@ static struct sk_buff *sky2_receive(struct sky2_port *sky2, goto oversize; if (length < copybreak) { - skb = alloc_skb(length + 2, GFP_ATOMIC); + skb = dev_alloc_skb(length + 2); if (!skb) goto resubmit;