Commit 3d9b7a5c authored by Bernd Schmidt's avatar Bernd Schmidt Committed by Bryan Wu

Blackfin arch: fix bug - MPU crashes under stress

Bug Description:
a customer reported under IRQ stress, running applications may
wrongly trigger an ICPLB miss and be killed. after playing a
bit more, here's a test case that may be triggering the same bug.

Fixing:
After modifying page protections, only modify the active CPLBs if the
protection change was made for the active mm.
Signed-off-by: default avatarBernd Schmidt <bernds_cb1@t-online.de>
Signed-off-by: default avatarBryan Wu <cooloney@kernel.org>
parent 225f7e1e
...@@ -173,8 +173,10 @@ static inline void protect_page(struct mm_struct *mm, unsigned long addr, ...@@ -173,8 +173,10 @@ static inline void protect_page(struct mm_struct *mm, unsigned long addr,
static inline void update_protections(struct mm_struct *mm) static inline void update_protections(struct mm_struct *mm)
{ {
if (mm->context.page_rwx_mask == current_rwx_mask) {
flush_switched_cplbs(); flush_switched_cplbs();
set_mask_dcplbs(mm->context.page_rwx_mask); set_mask_dcplbs(mm->context.page_rwx_mask);
}
} }
#endif #endif
......
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