3.18-stable review patch. If anyone has any objections, please let me know.
------------------ From: Huacai Chen <che...@lemote.com> commit 92aa0718c9fa5160ad2f0e7b5bffb52f1ea1e51a upstream. This patch is borrowed from ARM64 to ensure pmd_present() returns false after pmd_mknotpresent(). This is needed for THP. References: 5bb1cc0ff9a6 ("arm64: Ensure pmd_present() returns false after pmd_mknotpresent()") Reviewed-by: James Hogan <jho...@kernel.org> Signed-off-by: Huacai Chen <che...@lemote.com> Signed-off-by: Paul Burton <paul.bur...@mips.com> Patchwork: https://patchwork.linux-mips.org/patch/21135/ Cc: Ralf Baechle <r...@linux-mips.org> Cc: James Hogan <james.ho...@mips.com> Cc: Steven J . Hill <steven.h...@cavium.com> Cc: linux-m...@linux-mips.org Cc: Fuxin Zhang <zhan...@lemote.com> Cc: Zhangjin Wu <wuzhang...@gmail.com> Cc: <sta...@vger.kernel.org> # 3.8+ Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> --- arch/mips/include/asm/pgtable-64.h | 5 +++++ 1 file changed, 5 insertions(+) --- a/arch/mips/include/asm/pgtable-64.h +++ b/arch/mips/include/asm/pgtable-64.h @@ -189,6 +189,11 @@ static inline int pmd_bad(pmd_t pmd) static inline int pmd_present(pmd_t pmd) { +#ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT + if (unlikely(pmd_val(pmd) & _PAGE_HUGE)) + return pmd_val(pmd) & _PAGE_PRESENT; +#endif + return pmd_val(pmd) != (unsigned long) invalid_pte_table; }