|
@@ -12,6 +12,7 @@
|
|
|
#include <linux/swap.h>
|
|
#include <linux/swap.h>
|
|
|
#include <linux/hugetlb.h>
|
|
#include <linux/hugetlb.h>
|
|
|
|
|
|
|
|
|
|
+#include <asm/cpu-features.h>
|
|
|
#include <asm/pgtable.h>
|
|
#include <asm/pgtable.h>
|
|
|
|
|
|
|
|
static inline pte_t gup_get_pte(pte_t *ptep)
|
|
static inline pte_t gup_get_pte(pte_t *ptep)
|
|
@@ -273,7 +274,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
|
|
|
len = (unsigned long) nr_pages << PAGE_SHIFT;
|
|
len = (unsigned long) nr_pages << PAGE_SHIFT;
|
|
|
|
|
|
|
|
end = start + len;
|
|
end = start + len;
|
|
|
- if (end < start)
|
|
|
|
|
|
|
+ if (end < start || cpu_has_dc_aliases)
|
|
|
goto slow_irqon;
|
|
goto slow_irqon;
|
|
|
|
|
|
|
|
/* XXX: batch / limit 'nr' */
|
|
/* XXX: batch / limit 'nr' */
|