add a new dma_alloc_noncontiguous API v2

From: Christoph Hellwig
Date: Tue Feb 02 2021 - 04:52:57 EST


Hi all,

this series adds the new noncontiguous DMA allocation API requested by
various media driver maintainers.

Changes since v1:
- document that flush_kernel_vmap_range and invalidate_kernel_vmap_range
must be called once an allocation is mapped into KVA
- add dma-debug support
- remove the separate dma_handle argument, and instead create fully formed
DMA mapped scatterlists
- use a directional allocation in uvcvideo
- call invalidate_kernel_vmap_range from uvcvideo