ravb: unmap descriptors when freeing rings
authorKazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
Thu, 26 Jan 2017 13:29:27 +0000 (14:29 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 26 Jan 2017 23:41:05 +0000 (18:41 -0500)
commita47b70ea86bdeb3091341f5ae3ef580f1a1ad822
tree486911b0dd44dff74cd19814e24617a4f1c0ae0b
parent086cb6a41264b5af33928b82e09ae7f0f8bbc291
ravb: unmap descriptors when freeing rings

"swiotlb buffer is full" errors occur after repeated initialisation of a
device - f.e. suspend/resume or ip link set up/down. This is because memory
mapped using dma_map_single() in ravb_ring_format() and ravb_start_xmit()
is not released.  Resolve this problem by unmapping descriptors when
freeing rings.

Fixes: c156633f1353 ("Renesas Ethernet AVB driver proper")
Signed-off-by: Kazuya Mizuguchi <kazuya.mizuguchi.ks@renesas.com>
[simon: reworked]
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Acked-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/renesas/ravb_main.c