Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9fc34113 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

x86: debug pmd_bad()



Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 40869cd0
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -381,3 +381,10 @@ void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
}

#endif

int pmd_bad(pmd_t pmd)
{
	WARN_ON_ONCE(pmd_bad_v1(pmd) != pmd_bad_v2(pmd));

	return pmd_bad_v1(pmd);
}
+5 −1
Original line number Diff line number Diff line
@@ -90,7 +90,11 @@ extern unsigned long pg0[];
/* To avoid harmful races, pmd_none(x) should check only the lower when PAE */
#define pmd_none(x)	(!(unsigned long)pmd_val(x))
#define pmd_present(x)	(pmd_val(x) & _PAGE_PRESENT)
#define	pmd_bad(x)	((pmd_val(x) \

extern int pmd_bad(pmd_t pmd);

#define pmd_bad_v1(x)	((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
#define	pmd_bad_v2(x)	((pmd_val(x) \
			  & ~(PAGE_MASK | _PAGE_USER | _PAGE_PSE | _PAGE_NX)) \
			 != _KERNPG_TABLE)