summaryrefslogtreecommitdiffstats
path: root/include/linux/swiotlb.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2022-03-14 08:02:57 +0100
committerChristoph Hellwig <hch@lst.de>2022-04-18 07:21:13 +0200
commit7374153d294eb51de5a81ac38ff1c4fef8927bec (patch)
treed16ca1fc86fa89880cd0e9482118b5faf58ad403 /include/linux/swiotlb.h
parent742519538e6b07250c8085bbff4bd358bc03bf16 (diff)
downloadlinux-7374153d294eb51de5a81ac38ff1c4fef8927bec.tar.bz2
swiotlb: provide swiotlb_init variants that remap the buffer
To shared more code between swiotlb and xen-swiotlb, offer a swiotlb_init_remap interface and add a remap callback to swiotlb_init_late that will allow Xen to remap the buffer without duplicating much of the logic. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Tested-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Diffstat (limited to 'include/linux/swiotlb.h')
-rw-r--r--include/linux/swiotlb.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
index ee655f2e4d28..7b50c82f84ce 100644
--- a/include/linux/swiotlb.h
+++ b/include/linux/swiotlb.h
@@ -36,8 +36,11 @@ struct scatterlist;
int swiotlb_init_with_tbl(char *tlb, unsigned long nslabs, unsigned int flags);
unsigned long swiotlb_size_or_default(void);
+void __init swiotlb_init_remap(bool addressing_limit, unsigned int flags,
+ int (*remap)(void *tlb, unsigned long nslabs));
+int swiotlb_init_late(size_t size, gfp_t gfp_mask,
+ int (*remap)(void *tlb, unsigned long nslabs));
extern int swiotlb_late_init_with_tbl(char *tlb, unsigned long nslabs);
-int swiotlb_init_late(size_t size, gfp_t gfp_mask);
extern void __init swiotlb_update_mem_attributes(void);
phys_addr_t swiotlb_tbl_map_single(struct device *hwdev, phys_addr_t phys,