|
@@ -1572,31 +1572,7 @@ out:
|
|
|
return retval;
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * vm_insert_pfn - insert single pfn into user vma
|
|
|
- * @vma: user vma to map to
|
|
|
- * @addr: target user address of this page
|
|
|
- * @pfn: source kernel pfn
|
|
|
- *
|
|
|
- * Similar to vm_insert_page, this allows drivers to insert individual pages
|
|
|
- * they've allocated into a user vma. Same comments apply.
|
|
|
- *
|
|
|
- * This function should only be called from a vm_ops->fault handler, and
|
|
|
- * in that case the handler should return NULL.
|
|
|
- *
|
|
|
- * vma cannot be a COW mapping.
|
|
|
- *
|
|
|
- * As this is called only for pages that do not currently exist, we
|
|
|
- * do not need to flush old virtual caches or the TLB.
|
|
|
- */
|
|
|
-int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
|
|
|
- unsigned long pfn)
|
|
|
-{
|
|
|
- return vm_insert_pfn_prot(vma, addr, pfn, vma->vm_page_prot);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL(vm_insert_pfn);
|
|
|
-
|
|
|
-int vm_insert_pfn_prot(struct vm_area_struct *vma, unsigned long addr,
|
|
|
+static int vm_insert_pfn_prot(struct vm_area_struct *vma, unsigned long addr,
|
|
|
unsigned long pfn, pgprot_t pgprot)
|
|
|
{
|
|
|
int ret;
|
|
@@ -1626,6 +1602,30 @@ int vm_insert_pfn_prot(struct vm_area_struct *vma, unsigned long addr,
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * vm_insert_pfn - insert single pfn into user vma
|
|
|
+ * @vma: user vma to map to
|
|
|
+ * @addr: target user address of this page
|
|
|
+ * @pfn: source kernel pfn
|
|
|
+ *
|
|
|
+ * Similar to vm_insert_page, this allows drivers to insert individual pages
|
|
|
+ * they've allocated into a user vma. Same comments apply.
|
|
|
+ *
|
|
|
+ * This function should only be called from a vm_ops->fault handler, and
|
|
|
+ * in that case the handler should return NULL.
|
|
|
+ *
|
|
|
+ * vma cannot be a COW mapping.
|
|
|
+ *
|
|
|
+ * As this is called only for pages that do not currently exist, we
|
|
|
+ * do not need to flush old virtual caches or the TLB.
|
|
|
+ */
|
|
|
+int vm_insert_pfn(struct vm_area_struct *vma, unsigned long addr,
|
|
|
+ unsigned long pfn)
|
|
|
+{
|
|
|
+ return vm_insert_pfn_prot(vma, addr, pfn, vma->vm_page_prot);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(vm_insert_pfn);
|
|
|
+
|
|
|
/**
|
|
|
* vmf_insert_pfn_prot - insert single pfn into user vma with specified pgprot
|
|
|
* @vma: user vma to map to
|