On Fri, Feb 10, 2017 at 02:52:50PM +0100, Geert Uytterhoeven wrote: > On Wed, Jan 25, 2017 at 5:18 PM, Sergei Shtylyov > <sergei.shtylyov@xxxxxxxxxxxxxxxxxx> wrote: > > On 01/24/2017 09:21 PM, Simon Horman wrote: > > > >> From: Kazuya Mizuguchi <kazuya.mizuguchi.ks@xxxxxxxxxxx> > >> > >> "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. > > > > > > Could you look into the sh_eth driver which seems to have the same issue? > > Indeed, after a few suspend/resume cycles on r8a7791/koelsch: > > WARNING: CPU: 1 PID: 1699 at lib/dma-debug.c:517 add_dma_entry+0xfc/0x148 > DMA-API: exceeded 7 overlapping mappings of cacheline 0x0000000001a827e3 Thanks for confirming that. It matches my expectation after reading of the sh_eth code.