From: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> Before marking pmd_val as invalid_pte_table, factor in existing value for pmd_val. Signed-off-by: Paul Gortmaker <Paul.Gortmaker@xxxxxxxxxxxxx> Signed-off-by: David Daney <ddaney@xxxxxxxxxxxxxxxxxx> --- arch/mips/include/asm/pgtable-64.h | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h index 943515f..bb93bd5 100644 --- a/arch/mips/include/asm/pgtable-64.h +++ b/arch/mips/include/asm/pgtable-64.h @@ -129,7 +129,12 @@ extern pmd_t empty_bad_pmd_table[PTRS_PER_PMD]; */ static inline int pmd_none(pmd_t pmd) { +#ifdef CONFIG_CPU_CAVIUM_OCTEON + return (pmd_val(pmd) == (unsigned long) invalid_pte_table) || + (!pmd_val(pmd)); +#else return pmd_val(pmd) == (unsigned long) invalid_pte_table; +#endif } #define pmd_bad(pmd) (pmd_val(pmd) & ~PAGE_MASK) -- 1.5.5.1