|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 12/14] misc: bcm-vk: convert mmap hook to mmap_prepare
Move from the deprecated mmap hook to the new mmap_prepare hook, using the
I/O PFN remap mmap action to map the BAR.
Signed-off-by: Lorenzo Stoakes (ARM) <ljs@xxxxxxxxxx>
---
drivers/misc/bcm-vk/bcm_vk_dev.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/misc/bcm-vk/bcm_vk_dev.c b/drivers/misc/bcm-vk/bcm_vk_dev.c
index 88ee3a417616..25a2b46ebad9 100644
--- a/drivers/misc/bcm-vk/bcm_vk_dev.c
+++ b/drivers/misc/bcm-vk/bcm_vk_dev.c
@@ -1201,9 +1201,9 @@ static long bcm_vk_reset(struct bcm_vk *vk, struct
vk_reset __user *arg)
return ret;
}
-static int bcm_vk_mmap(struct file *file, struct vm_area_struct *vma)
+static int bcm_vk_mmap_prepare(struct vm_area_desc *desc)
{
- struct bcm_vk_ctx *ctx = file->private_data;
+ struct bcm_vk_ctx *ctx = desc->file->private_data;
struct bcm_vk *vk = container_of(ctx->miscdev, struct bcm_vk, miscdev);
unsigned long pg_size;
@@ -1212,16 +1212,16 @@ static int bcm_vk_mmap(struct file *file, struct
vm_area_struct *vma)
pg_size = ((pci_resource_len(vk->pdev, VK_MMAPABLE_BAR) - 1)
>> PAGE_SHIFT) + 1;
- if (vma->vm_pgoff + vma_pages(vma) > pg_size)
+ if (desc->pgoff + vma_desc_pages(desc) > pg_size)
return -EINVAL;
- vma->vm_pgoff += (pci_resource_start(vk->pdev, VK_MMAPABLE_BAR)
- >> PAGE_SHIFT);
- vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
+ desc->pgoff += (pci_resource_start(vk->pdev, VK_MMAPABLE_BAR)
+ >> PAGE_SHIFT);
+ desc->page_prot = pgprot_noncached(desc->page_prot);
+
+ mmap_action_ioremap_full(desc, desc->pgoff);
- return io_remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff,
- vma->vm_end - vma->vm_start,
- vma->vm_page_prot);
+ return 0;
}
static long bcm_vk_ioctl(struct file *file, unsigned int cmd, unsigned long
arg)
@@ -1262,7 +1262,7 @@ static const struct file_operations bcm_vk_fops = {
.write = bcm_vk_write,
.poll = bcm_vk_poll,
.release = bcm_vk_release,
- .mmap = bcm_vk_mmap,
+ .mmap_prepare = bcm_vk_mmap_prepare,
.unlocked_ioctl = bcm_vk_ioctl,
};
--
2.56.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |