Commit 52f48d91 authored by Toshihiro Kobayashi's avatar Toshihiro Kobayashi Committed by Russell King

[ARM PATCH] 1911/1: fix of odd PMD handling in do_translation_fault()

Patch from Toshihiro Kobayashi

do_translation_fault() in arch/arm/mm/fault.c will never resolve odd PMD.
This patch fixes that problem.
parent 1261c634
...@@ -348,7 +348,7 @@ do_translation_fault(unsigned long addr, unsigned int fsr, ...@@ -348,7 +348,7 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
if (pmd_none(*pmd_k)) if (pmd_none(*pmd_k))
goto bad_area; goto bad_area;
set_pmd(pmd, *pmd_k); copy_pmd(pmd, pmd_k);
return 0; return 0;
bad_area: bad_area:
......
...@@ -312,6 +312,13 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG); ...@@ -312,6 +312,13 @@ PTE_BIT_FUNC(mkyoung, |= L_PTE_YOUNG);
flush_pmd_entry(pmdp); \ flush_pmd_entry(pmdp); \
} while (0) } while (0)
#define copy_pmd(pmdpd,pmdps) \
do { \
pmdpd[0] = pmdps[0]; \
pmdpd[1] = pmdps[1]; \
flush_pmd_entry(pmdpd); \
} while (0)
#define pmd_clear(pmdp) \ #define pmd_clear(pmdp) \
do { \ do { \
pmdp[0] = __pmd(0); \ pmdp[0] = __pmd(0); \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment