• Jon Burgess's avatar
    V4L/DVB (5592): DMA: Correctly free resources on error, sync PCI streamed data · 87c3019d
    Jon Burgess authored
    I added saa7146_vmalloc_destroy_pgtable() which frees the resources
    allocated by saa7146_vmalloc_build_pgtable() and updated the callers in
    budget-core.c and av7110.c. I have also been through the updated
    functions and updated the error paths to ensure they free all allocated
    resources on error.
    I also realised that there are other callers to saa7146_pgtable_free()
    which did not have any sg DMA mapped so it seems wrong to add the
    pci_unmap_sg() into that function. Instead I created
    saa7146_vmalloc_destroy_pgtable() to do this.
    Also included in this patch are the previous fixes for pci_unmap_sg()
    and syncing the PCI streamed data to work with a SWIOTLB and match the
    requirements documented in DMA-API.txt.
    Signed-off-by: default avatarJon Burgess <jburgess777@googlemail.com>
    Signed-off-by: default avatarOliver Endriss <o.endriss@gmx.de>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
    87c3019d
saa7146_core.c 14.1 KB