]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commit
atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring
authorNeil Horman <nhorman@tuxdriver.com>
Fri, 26 Jul 2013 16:47:14 +0000 (12:47 -0400)
committerDavid S. Miller <davem@davemloft.net>
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 <nhorman@tuxdriver.com>
CC: Jay Cliburn <jcliburn@gmail.com>
CC: "David S. Miller" <davem@davemloft.net>
CC: stable@vger.kernel.org
Tested-by: Luis Henriques <luis.henriques@canonical.com>
Tested-by: Vincent Alquier <vincent.alquier@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/atheros/atl1c/atl1c_main.c