3c59x: fix missing dma_mapping_error check and bad ring refill logic
authorNeil Horman <[email protected]>
Wed, 3 Jan 2018 18:09:23 +0000 (13:09 -0500)
committerDavid S. Miller <[email protected]>
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 <[email protected]>
CC: Steffen Klassert <[email protected]>
CC: "David S. Miller" <[email protected]>
Reported-by: [email protected]
Signed-off-by: David S. Miller <[email protected]>
drivers/net/ethernet/3com/3c59x.c