swiotlb: respect min_align_mask
authorChristoph Hellwig <hch@lst.de>
Mon, 22 Feb 2021 19:39:44 +0000 (14:39 -0500)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 26 Feb 2021 15:52:44 +0000 (10:52 -0500)
commit1f221a0d0dbf0e48ef3a9c62871281d6a7819f05
treeccea91fb5c9809361b20f87f53862582427d6ee2
parent16fc3cef33a04632ab6b31758abdd77563a20759
swiotlb: respect min_align_mask

Respect the min_align_mask in struct device_dma_parameters in swiotlb.

There are two parts to it:
 1) for the lower bits of the alignment inside the io tlb slot, just
    extent the size of the allocation and leave the start of the slot
     empty
 2) for the high bits ensure we find a slot that matches the high bits
    of the alignment to avoid wasting too much memory

Based on an earlier patch from Jianxiong Gao <jxgao@google.com>.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Jianxiong Gao <jxgao@google.com>
Tested-by: Jianxiong Gao <jxgao@google.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
kernel/dma/swiotlb.c