提交 c9e1585b 编写于 作者: I Ingo Molnar

Merge branch 'tip/x86/urgent' of...

Merge branch 'tip/x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into x86/mm
...@@ -645,6 +645,7 @@ static noinline int spurious_fault(unsigned long error_code, ...@@ -645,6 +645,7 @@ static noinline int spurious_fault(unsigned long error_code,
pud_t *pud; pud_t *pud;
pmd_t *pmd; pmd_t *pmd;
pte_t *pte; pte_t *pte;
int ret;
/* Reserved-bit violation or user access to kernel space? */ /* Reserved-bit violation or user access to kernel space? */
if (error_code & (PF_USER | PF_RSVD)) if (error_code & (PF_USER | PF_RSVD))
...@@ -672,7 +673,17 @@ static noinline int spurious_fault(unsigned long error_code, ...@@ -672,7 +673,17 @@ static noinline int spurious_fault(unsigned long error_code,
if (!pte_present(*pte)) if (!pte_present(*pte))
return 0; return 0;
return spurious_fault_check(error_code, pte); ret = spurious_fault_check(error_code, pte);
if (!ret)
return 0;
/*
* Make sure we have permissions in PMD
* If not, then there's a bug in the page tables.
*/
ret = spurious_fault_check(error_code, (pte_t *) pmd);
WARN_ONCE(!ret, "PMD has incorrect permission bits\n");
return ret;
} }
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册