diff options
author | David Stevens <stevensd@chromium.org> | 2021-09-29 05:32:59 +0300 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2021-09-29 13:50:34 +0300 |
commit | e81e99bacc9f9347bda7808a949c1ce9fcc2bbf4 (patch) | |
tree | a32ae98bfc2d166e2eb38dff191cddee25e72d63 /include/linux/swiotlb.h | |
parent | 2e727bffbe93750a13d2414f3ce43de2f21600d2 (diff) | |
download | linux-e81e99bacc9f9347bda7808a949c1ce9fcc2bbf4.tar.xz |
swiotlb: Support aligned swiotlb buffers
Add an argument to swiotlb_tbl_map_single that specifies the desired
alignment of the allocated buffer. This is used by dma-iommu to ensure
the buffer is aligned to the iova granule size when using swiotlb with
untrusted sub-granule mappings. This addresses an issue where adjacent
slots could be exposed to the untrusted device if IO_TLB_SIZE < iova
granule < PAGE_SIZE.
Signed-off-by: David Stevens <stevensd@chromium.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20210929023300.335969-7-stevensd@google.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'include/linux/swiotlb.h')
-rw-r--r-- | include/linux/swiotlb.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h index b0cb2a9973f4..569272871375 100644 --- a/include/linux/swiotlb.h +++ b/include/linux/swiotlb.h @@ -45,7 +45,8 @@ extern void __init swiotlb_update_mem_attributes(void); phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phys, size_t mapping_size, size_t alloc_size, - enum dma_data_direction dir, unsigned long attrs); + unsigned int alloc_aligned_mask, enum dma_data_direction dir, + unsigned long attrs); extern void swiotlb_tbl_unmap_single(struct device *hwdev, phys_addr_t tlb_addr, |