diff options
Diffstat (limited to 'arch/xtensa/kernel/entry.S')
-rw-r--r-- | arch/xtensa/kernel/entry.S | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/xtensa/kernel/entry.S b/arch/xtensa/kernel/entry.S index 5082507d5631..fa94512ff84d 100644 --- a/arch/xtensa/kernel/entry.S +++ b/arch/xtensa/kernel/entry.S | |||
@@ -1792,10 +1792,15 @@ ENTRY(fast_store_prohibited) | |||
1792 | l32i a0, a0, 0 | 1792 | l32i a0, a0, 0 |
1793 | beqz a0, 2f | 1793 | beqz a0, 2f |
1794 | 1794 | ||
1795 | /* Note that we assume _PAGE_WRITABLE_BIT is only set if pte is valid.*/ | 1795 | /* |
1796 | * Note that we test _PAGE_WRITABLE_BIT only if PTE is present | ||
1797 | * and is not PAGE_NONE. See pgtable.h for possible PTE layouts. | ||
1798 | */ | ||
1796 | 1799 | ||
1797 | _PTE_OFFSET(a0, a1, a4) | 1800 | _PTE_OFFSET(a0, a1, a4) |
1798 | l32i a4, a0, 0 # read pteval | 1801 | l32i a4, a0, 0 # read pteval |
1802 | movi a1, _PAGE_CA_INVALID | ||
1803 | ball a4, a1, 2f | ||
1799 | bbci.l a4, _PAGE_WRITABLE_BIT, 2f | 1804 | bbci.l a4, _PAGE_WRITABLE_BIT, 2f |
1800 | 1805 | ||
1801 | movi a1, _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_HW_WRITE | 1806 | movi a1, _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_HW_WRITE |