dma-remap: Align the size in dma_common_*_remap()
PATCH 1/1 dma-remap: Align the size in dma_common_*_remap()
Running a guest with a virtio-iommu protecting virtio devices is broken since commit 515e5b6d90d4 ("dma-mapping: use vmap insted of reimplementing it"). Before the conversion, the size was page aligned in __get_vm_area_node(). Doing so fixes the regression.
Fixes 515e5b6d90d4 ("dma-mapping: use vmap insted of reimplementing it")
Signed-off-by Eric Auger <[email protected]>
--- kernel/dma/remap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
kernel/dma/remap.c +2 -2
@@ -24,7 +24,7 @@ void *dma_common_pages_remap(struct page **pages, size_t size, {void *vaddr; - vaddr =vmap (pages, size >>PAGE_SHIFT ,VM_DMA_COHERENT , prot); + vaddr =vmap (pages,PAGE_ALIGN (size) >>PAGE_SHIFT ,VM_DMA_COHERENT , prot);if (vaddr)find_vm_area (vaddr)->pages = pages;return vaddr;
@@ -37,7 +37,7 @@ void *dma_common_pages_remap(struct page **pages, size_t size,void *dma_common_contiguous_remap (struct page *page,size_t size,pgprot_t prot,const void *caller) { -int count = size >>PAGE_SHIFT ; +int count =PAGE_ALIGN (size) >>PAGE_SHIFT ;struct page **pages;void *vaddr;int i;
Signature · 1 line
2.20.1
Quoted 17 lines · Eric Auger
Running a guest with a virtio-iommu protecting virtio devices is broken since commit
515e5b6d90d4("dma-mapping: use vmap insted of reimplementing it"). Before the conversion, the size was page aligned in__get_vm_area_node(). Doing so fixes the regression.Fixes 515e5b6d90d4 ("dma-mapping: use vmap insted of reimplementing it")Signed-off-by Eric Auger <[email protected]>--- kernel/dma/remap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)kernel/dma/remap.c +0
-0
kernel/dma/remap.c void *dma_common_pages_remap(struct page **pages, size_t size, · line 27
Quoted 5 lines
kernel/dma/remap.c +1
-1@@ -24,7 +24,7 @@ void *dma_common_pages_remap(struct page **pages, size_t size, {void *vaddr; - vaddr =vmap (pages, size >>PAGE_SHIFT ,VM_DMA_COHERENT , prot); + vaddr =vmap (pages,PAGE_ALIGN (size) >>PAGE_SHIFT ,VM_DMA_COHERENT , prot);
Please respin without going over 80 characters.