mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
mm/gup: Use huge_ptep_get() in gup_hugepte()
gup_hugepte() reads hugepage table entries, it can't read
them directly, huge_ptep_get() must be used.
Fixes: 9e343b467c
("READ_ONCE: Enforce atomicity for {READ,WRITE}_ONCE() memory accesses")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Acked-by: Will Deacon <will@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/ffc3714334c3bfaca6f13788ad039e8759ae413f.1592225558.git.christophe.leroy@csgroup.eu
This commit is contained in:
parent
1497eea686
commit
55ca22633a
2
mm/gup.c
2
mm/gup.c
@ -2425,7 +2425,7 @@ static int gup_hugepte(pte_t *ptep, unsigned long sz, unsigned long addr,
|
|||||||
if (pte_end < end)
|
if (pte_end < end)
|
||||||
end = pte_end;
|
end = pte_end;
|
||||||
|
|
||||||
pte = READ_ONCE(*ptep);
|
pte = huge_ptep_get(ptep);
|
||||||
|
|
||||||
if (!pte_access_permitted(pte, flags & FOLL_WRITE))
|
if (!pte_access_permitted(pte, flags & FOLL_WRITE))
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user