Simon Guinot a84e328941 net: mvneta: fix refilling for Rx DMA buffers
With the actual code, if a memory allocation error happens while
refilling a Rx descriptor, then the original Rx buffer is both passed
to the networking stack (in a SKB) and let in the Rx ring. This leads
to various kernel oops and crashes.

As a fix, this patch moves Rx descriptor refilling ahead of building
SKB with the associated Rx buffer. In case of a memory allocation
failure, data is dropped and the original DMA buffer is put back into
the Rx ring.

Signed-off-by: Simon Guinot <simon.guinot@sequanux.org>
Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
Cc: <stable@vger.kernel.org> # v3.8+
Tested-by: Yoann Sculo <yoann@sculo.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-07-21 00:30:02 -07:00
..
2015-06-10 22:46:34 -07:00
2015-06-26 11:54:29 -07:00
2015-07-08 15:14:13 +08:00
2015-07-01 14:44:22 -07:00
2015-06-13 08:44:14 -07:00
2015-07-10 12:16:59 -07:00
2015-07-02 14:40:49 -07:00
2015-06-26 14:51:15 -07:00
2015-07-01 19:40:18 -07:00
2015-07-05 10:54:09 -07:00
2015-06-23 13:32:38 -07:00
2015-07-02 14:40:49 -07:00
2015-07-02 14:40:49 -07:00
2015-06-28 12:32:13 -07:00
2015-07-03 16:02:25 -07:00