atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring
authorNeil Horman <[email protected]>
Fri, 26 Jul 2013 16:47:14 +0000 (12:47 -0400)
committerDavid S. Miller <[email protected]>
Fri, 26 Jul 2013 22:43:38 +0000 (15:43 -0700)
commitebe7fdbaf3e90ea22feade6c9f5e50f42b23b6d8
tree5db7fdd1cddd343e5775b933d8021127a4eb57e5
parentc80dc13dda73db67e156b161d06c78f266b36ea6
atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring

atl1c uses netdev_alloc_skb to refill its rx dma ring, but that call makes no
guarantees about the suitability of the memory for use in DMA.  As a result
we've gotten reports of atl1c drivers occasionally hanging and needing to be
reset:
https://bugzilla.kernel.org/show_bug.cgi?id=54021

Fix this by modifying the call to use the internal version __netdev_alloc_skb,
where you can set the gfp_mask explicitly to include GFP_DMA.

Tested by two reporters in the above bug, who have the hardware to validate it.
Both report immediate cessation of the problem with this patch

Signed-off-by: Neil Horman <[email protected]>
CC: Jay Cliburn <[email protected]>
CC: "David S. Miller" <[email protected]>
CC: [email protected]
Tested-by: Luis Henriques <[email protected]>
Tested-by: Vincent Alquier <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
drivers/net/ethernet/atheros/atl1c/atl1c_main.c