Message ID | 20240715192142.3241557-6-peterx@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/mprotect: Fix dax puds | expand |
On 15.07.24 21:21, Peter Xu wrote: > An entry should be reported as PUD leaf even if it's PROT_NONE, in which > case PRESENT bit isn't there. I hit bad pud without this when testing dax > 1G on zapping a PROT_NONE PUD. > Subject s/cares/care/ > Cc: Thomas Gleixner <tglx@linutronix.de> > Cc: Ingo Molnar <mingo@redhat.com> > Cc: Borislav Petkov <bp@alien8.de> > Cc: Dave Hansen <dave.hansen@linux.intel.com> > Cc: x86@kernel.org > Acked-by: Dave Hansen <dave.hansen@linux.intel.com> > Signed-off-by: Peter Xu <peterx@redhat.com> > --- > arch/x86/include/asm/pgtable.h | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h > index 65b8e5bb902c..25fc6d809572 100644 > --- a/arch/x86/include/asm/pgtable.h > +++ b/arch/x86/include/asm/pgtable.h > @@ -1073,8 +1073,7 @@ static inline pmd_t *pud_pgtable(pud_t pud) > #define pud_leaf pud_leaf > static inline bool pud_leaf(pud_t pud) > { > - return (pud_val(pud) & (_PAGE_PSE | _PAGE_PRESENT)) == > - (_PAGE_PSE | _PAGE_PRESENT); > + return pud_val(pud) & _PAGE_PSE; > } > > static inline int pud_bad(pud_t pud) Reviewed-by: David Hildenbrand <david@redhat.com>
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 65b8e5bb902c..25fc6d809572 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -1073,8 +1073,7 @@ static inline pmd_t *pud_pgtable(pud_t pud) #define pud_leaf pud_leaf static inline bool pud_leaf(pud_t pud) { - return (pud_val(pud) & (_PAGE_PSE | _PAGE_PRESENT)) == - (_PAGE_PSE | _PAGE_PRESENT); + return pud_val(pud) & _PAGE_PSE; } static inline int pud_bad(pud_t pud)