|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 10/14] soc: qcom: rmtfs_mem: convert mmap hook to mmap_prepare
Move from the deprecated mmap hook to the new mmap_prepare hook, using the
PFN remap mmap action to map the region.
Signed-off-by: Lorenzo Stoakes (ARM) <ljs@xxxxxxxxxx>
---
drivers/soc/qcom/rmtfs_mem.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/drivers/soc/qcom/rmtfs_mem.c b/drivers/soc/qcom/rmtfs_mem.c
index 342c0845134e..5e2ac75f41d5 100644
--- a/drivers/soc/qcom/rmtfs_mem.c
+++ b/drivers/soc/qcom/rmtfs_mem.c
@@ -129,24 +129,22 @@ static const struct class rmtfs_class = {
.name = "rmtfs",
};
-static int qcom_rmtfs_mem_mmap(struct file *filep, struct vm_area_struct *vma)
+static int qcom_rmtfs_mem_mmap_prepare(struct vm_area_desc *desc)
{
- struct qcom_rmtfs_mem *rmtfs_mem = filep->private_data;
+ struct qcom_rmtfs_mem *rmtfs_mem = desc->file->private_data;
- if (vma->vm_end - vma->vm_start > rmtfs_mem->size) {
+ if (vma_desc_size(desc) > rmtfs_mem->size) {
dev_dbg(&rmtfs_mem->dev,
"vm_end[%lu] - vm_start[%lu] [%lu] > mem->size[%pa]\n",
- vma->vm_end, vma->vm_start,
- (vma->vm_end - vma->vm_start), &rmtfs_mem->size);
+ desc->end, desc->start, vma_desc_size(desc),
+ &rmtfs_mem->size);
return -EINVAL;
}
- vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
- return remap_pfn_range(vma,
- vma->vm_start,
- rmtfs_mem->addr >> PAGE_SHIFT,
- vma->vm_end - vma->vm_start,
- vma->vm_page_prot);
+ desc->page_prot = pgprot_writecombine(desc->page_prot);
+ mmap_action_remap_full(desc, rmtfs_mem->addr >> PAGE_SHIFT);
+
+ return 0;
}
static const struct file_operations qcom_rmtfs_mem_fops = {
@@ -156,7 +154,7 @@ static const struct file_operations qcom_rmtfs_mem_fops = {
.write = qcom_rmtfs_mem_write,
.release = qcom_rmtfs_mem_release,
.llseek = default_llseek,
- .mmap = qcom_rmtfs_mem_mmap,
+ .mmap_prepare = qcom_rmtfs_mem_mmap_prepare,
};
static void qcom_rmtfs_mem_release_device(struct device *dev)
--
2.56.0
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |