Commit 946cff25 authored by Alex Williamson's avatar Alex Williamson

Merge branches 'v6.8/vfio/debugfs', 'v6.8/vfio/pds' and...

Merge branches 'v6.8/vfio/debugfs', 'v6.8/vfio/pds' and 'v6.8/vfio/type1-account' into v6.8/vfio/next
This diff is collapsed.
...@@ -4,20 +4,22 @@ ...@@ -4,20 +4,22 @@
#ifndef _DIRTY_H_ #ifndef _DIRTY_H_
#define _DIRTY_H_ #define _DIRTY_H_
struct pds_vfio_bmp_info { struct pds_vfio_region {
unsigned long *bmp; unsigned long *host_seq;
u32 bmp_bytes; unsigned long *host_ack;
u64 bmp_bytes;
u64 size;
u64 start;
u64 page_size;
struct pds_lm_sg_elem *sgl; struct pds_lm_sg_elem *sgl;
dma_addr_t sgl_addr; dma_addr_t sgl_addr;
u32 dev_bmp_offset_start_byte;
u16 num_sge; u16 num_sge;
}; };
struct pds_vfio_dirty { struct pds_vfio_dirty {
struct pds_vfio_bmp_info host_seq; struct pds_vfio_region *regions;
struct pds_vfio_bmp_info host_ack; u8 num_regions;
u64 region_size;
u64 region_start;
u64 region_page_size;
bool is_enabled; bool is_enabled;
}; };
......
...@@ -1436,7 +1436,7 @@ static int vfio_iommu_map(struct vfio_iommu *iommu, dma_addr_t iova, ...@@ -1436,7 +1436,7 @@ static int vfio_iommu_map(struct vfio_iommu *iommu, dma_addr_t iova,
list_for_each_entry(d, &iommu->domain_list, next) { list_for_each_entry(d, &iommu->domain_list, next) {
ret = iommu_map(d->domain, iova, (phys_addr_t)pfn << PAGE_SHIFT, ret = iommu_map(d->domain, iova, (phys_addr_t)pfn << PAGE_SHIFT,
npage << PAGE_SHIFT, prot | IOMMU_CACHE, npage << PAGE_SHIFT, prot | IOMMU_CACHE,
GFP_KERNEL); GFP_KERNEL_ACCOUNT);
if (ret) if (ret)
goto unwind; goto unwind;
...@@ -1750,7 +1750,8 @@ static int vfio_iommu_replay(struct vfio_iommu *iommu, ...@@ -1750,7 +1750,8 @@ static int vfio_iommu_replay(struct vfio_iommu *iommu,
} }
ret = iommu_map(domain->domain, iova, phys, size, ret = iommu_map(domain->domain, iova, phys, size,
dma->prot | IOMMU_CACHE, GFP_KERNEL); dma->prot | IOMMU_CACHE,
GFP_KERNEL_ACCOUNT);
if (ret) { if (ret) {
if (!dma->iommu_mapped) { if (!dma->iommu_mapped) {
vfio_unpin_pages_remote(dma, iova, vfio_unpin_pages_remote(dma, iova,
...@@ -1845,7 +1846,8 @@ static void vfio_test_domain_fgsp(struct vfio_domain *domain, struct list_head * ...@@ -1845,7 +1846,8 @@ static void vfio_test_domain_fgsp(struct vfio_domain *domain, struct list_head *
continue; continue;
ret = iommu_map(domain->domain, start, page_to_phys(pages), PAGE_SIZE * 2, ret = iommu_map(domain->domain, start, page_to_phys(pages), PAGE_SIZE * 2,
IOMMU_READ | IOMMU_WRITE | IOMMU_CACHE, GFP_KERNEL); IOMMU_READ | IOMMU_WRITE | IOMMU_CACHE,
GFP_KERNEL_ACCOUNT);
if (!ret) { if (!ret) {
size_t unmapped = iommu_unmap(domain->domain, start, PAGE_SIZE); size_t unmapped = iommu_unmap(domain->domain, start, PAGE_SIZE);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment