ddaney@xxxxxxxxxxxxxxxxxx wrote:
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(-)
Hi David,
I think you missed my feedback on this patch -- you should be the primary
S.O.B. on this, and at a minimum, it needs a better description of just why
this is required (if it actually is) on Cavium CPUs, but not on other
boards.
Thanks,
Paul.
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)