ARM: mm: correct pte_same behaviour for LPAE.
authorSteve Capper <steve.capper@linaro.org>
Fri, 17 May 2013 11:32:55 +0000 (12:32 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 6 Feb 2015 06:35:38 +0000 (22:35 -0800)
commit171b1455b3f59346412848703a41a9a8019c99c9
treeacfed073a7c95d3d8c9ba4213a8a3b3da723c897
parent30e2adb098750046be48eb595a7c6732a4293d54
ARM: mm: correct pte_same behaviour for LPAE.

commit dde1b65110353517816bcbc58539463396202244 upstream.

For 3 levels of paging the PTE_EXT_NG bit will be set for user
address ptes that are written to a page table but not for ptes
created with mk_pte.

This can cause some comparison tests made by pte_same to fail
spuriously and lead to other problems.

To correct this behaviour, we mask off PTE_EXT_NG for any pte that
is present before running the comparison.

Signed-off-by: Steve Capper <steve.capper@linaro.org>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Cc: Hou Pengyang <houpengyang@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/include/asm/pgtable-3level.h