summaryrefslogtreecommitdiff
path: root/drivers/vdpa/vdpa_user/iova_domain.h
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2022-08-18 21:17:10 -0700
committerJakub Kicinski <kuba@kernel.org>2022-08-18 21:17:10 -0700
commit268603d79cc48dba671e9caf108fab32315b86a2 (patch)
tree77466c8c4c104397d1c459674f7a75c4fd60455a /drivers/vdpa/vdpa_user/iova_domain.h
parent8c78c1e52b0b86bd282c41f3725beabe3c244b94 (diff)
parent4c2d0b039c5cc0112206a5b22431b577cb1c57ad (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
No conflicts. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/vdpa/vdpa_user/iova_domain.h')
-rw-r--r--drivers/vdpa/vdpa_user/iova_domain.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/vdpa/vdpa_user/iova_domain.h b/drivers/vdpa/vdpa_user/iova_domain.h
index 2722d9b8e21a..4e0e50e7ac15 100644
--- a/drivers/vdpa/vdpa_user/iova_domain.h
+++ b/drivers/vdpa/vdpa_user/iova_domain.h
@@ -14,6 +14,7 @@
#include <linux/iova.h>
#include <linux/dma-mapping.h>
#include <linux/vhost_iotlb.h>
+#include <linux/rwlock.h>
#define IOVA_START_PFN 1
@@ -34,6 +35,8 @@ struct vduse_iova_domain {
struct vhost_iotlb *iotlb;
spinlock_t iotlb_lock;
struct file *file;
+ bool user_bounce_pages;
+ rwlock_t bounce_lock;
};
int vduse_domain_set_map(struct vduse_iova_domain *domain,
@@ -61,6 +64,11 @@ void vduse_domain_free_coherent(struct vduse_iova_domain *domain, size_t size,
void vduse_domain_reset_bounce_map(struct vduse_iova_domain *domain);
+int vduse_domain_add_user_bounce_pages(struct vduse_iova_domain *domain,
+ struct page **pages, int count);
+
+void vduse_domain_remove_user_bounce_pages(struct vduse_iova_domain *domain);
+
void vduse_domain_destroy(struct vduse_iova_domain *domain);
struct vduse_iova_domain *vduse_domain_create(unsigned long iova_limit,