3c59x: fix missing dma_mapping_error check and bad ring refill logic
authorNeil Horman <nhorman@tuxdriver.com>
Wed, 3 Jan 2018 18:09:23 +0000 (13:09 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 3 Jan 2018 18:44:14 +0000 (13:44 -0500)
commitee4aa8df70fa6d76bd776c025dc0d8d746c18317
tree294265ef55cbeafb5189f3bd6fed9cd8ec395f2d
parent74c88af59fa31bc1bbb3f795b3bf2636e8b2fe2e
3c59x: fix missing dma_mapping_error check and bad ring refill logic

A few spots in 3c59x missed calls to dma_mapping_error checks, casuing
WARN_ONS to trigger.  Clean those up.  While we're at it, refactor the
refill code a bit so that if skb allocation or dma mapping fails, we
recycle the existing buffer.  This prevents holes in the rx ring, and
makes for much simpler logic

Note: This is compile only tested.  Ted, if you could run this and
confirm that it continues to work properly, I would appreciate it, as I
currently don't have access to this hardware

Signed-off-by: Neil Horman <nhorman@redhat.com>
CC: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
CC: "David S. Miller" <davem@davemloft.net>
Reported-by: tedheadster@gmail.com
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/3com/3c59x.c