projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0005d20
)
mm/gup: Mark all pages PageReferenced in generic get_user_pages_fast()
author
Kirill A. Shutemov
<
[email protected]
>
Thu, 16 Mar 2017 15:26:52 +0000
(18:26 +0300)
committer
Ingo Molnar
<
[email protected]
>
Sat, 18 Mar 2017 08:48:02 +0000
(09:48 +0100)
This is a preparation patch for the transition of x86 to the generic GUP_fast()
implementation.
Unlike generic GUP_fast(), the x86 version makes all pages it touches
referenced. It seems required for GRU and EPT.
See the following commit:
8ee53820edfd
("thp: mmu_notifier_test_young")
Signed-off-by: Kirill A. Shutemov <
[email protected]
>
Cc: Andrea Arcangeli <
[email protected]
>
Cc: Andrew Morton <
[email protected]
>
Cc: Aneesh Kumar K . V <
[email protected]
>
Cc: Borislav Petkov <
[email protected]
>
Cc: Catalin Marinas <
[email protected]
>
Cc: Dann Frazier <
[email protected]
>
Cc: Dave Hansen <
[email protected]
>
Cc: H. Peter Anvin <
[email protected]
>
Cc: Linus Torvalds <
[email protected]
>
Cc: Peter Zijlstra <
[email protected]
>
Cc: Rik van Riel <
[email protected]
>
Cc: Steve Capper <
[email protected]
>
Cc: Thomas Gleixner <
[email protected]
>
Cc:
[email protected]
Cc:
[email protected]
Link:
http://lkml.kernel.org/r/
[email protected]
Signed-off-by: Ingo Molnar <
[email protected]
>
mm/gup.c
patch
|
blob
|
history
diff --git
a/mm/gup.c
b/mm/gup.c
index e83db38deb17df3bbf0fa3058da540ec4f081a81..2b6cd35734570dd09f98cdb8d263187b33f5f15c 100644
(file)
--- a/
mm/gup.c
+++ b/
mm/gup.c
@@
-1238,6
+1238,8
@@
static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end,
}
VM_BUG_ON_PAGE(compound_head(page) != head, page);
+
+ SetPageReferenced(page);
pages[*nr] = page;
(*nr)++;
@@
-1299,6
+1301,7
@@
static int gup_huge_pmd(pmd_t orig, pmd_t *pmdp, unsigned long addr,
return 0;
}
+ SetPageReferenced(head);
return 1;
}
@@
-1334,6
+1337,7
@@
static int gup_huge_pud(pud_t orig, pud_t *pudp, unsigned long addr,
return 0;
}
+ SetPageReferenced(head);
return 1;
}
@@
-1370,6
+1374,7
@@
static int gup_huge_pgd(pgd_t orig, pgd_t *pgdp, unsigned long addr,
return 0;
}
+ SetPageReferenced(head);
return 1;
}