|
@@ -245,6 +245,19 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * Like get_user_pages_fast() except its IRQ-safe in that it won't fall
|
|
|
|
+ * back to the regular GUP.
|
|
|
|
+ * If the architecture not support this fucntion, simply return with no
|
|
|
|
+ * page pinned
|
|
|
|
+ */
|
|
|
|
+int __attribute__((weak)) __get_user_pages_fast(unsigned long start,
|
|
|
|
+ int nr_pages, int write, struct page **pages)
|
|
|
|
+{
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+EXPORT_SYMBOL_GPL(__get_user_pages_fast);
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* get_user_pages_fast() - pin user pages in memory
|
|
* get_user_pages_fast() - pin user pages in memory
|
|
* @start: starting user address
|
|
* @start: starting user address
|