diff options
author | Markos Chandras <markos.chandras@imgtec.com> | 2014-01-16 08:11:08 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2014-03-26 18:09:19 -0400 |
commit | 80ca69f40f26fb016e6d863b48fe1a1abdae8840 (patch) | |
tree | 71ac70b50989cddd650961852e6dcf4e3d44a070 /arch/mips/mm/c-r4k.c | |
parent | 4caa906ee949b7002cc1558bbe3744fbed188d1c (diff) |
MIPS: mm: c-r4k: Add support for flushing user pages from cache
Use the userspace cache flushing functions if the interrupted
process is a userspace one.
Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
Diffstat (limited to 'arch/mips/mm/c-r4k.c')
-rw-r--r-- | arch/mips/mm/c-r4k.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index 6332a9e84f01..9b223e07f784 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
@@ -562,7 +562,8 @@ static inline void local_r4k_flush_cache_page(void *args) | |||
562 | } | 562 | } |
563 | 563 | ||
564 | if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) { | 564 | if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) { |
565 | r4k_blast_dcache_page(addr); | 565 | vaddr ? r4k_blast_dcache_page(addr) : |
566 | r4k_blast_dcache_user_page(addr); | ||
566 | if (exec && !cpu_icache_snoops_remote_store) | 567 | if (exec && !cpu_icache_snoops_remote_store) |
567 | r4k_blast_scache_page(addr); | 568 | r4k_blast_scache_page(addr); |
568 | } | 569 | } |
@@ -573,7 +574,8 @@ static inline void local_r4k_flush_cache_page(void *args) | |||
573 | if (cpu_context(cpu, mm) != 0) | 574 | if (cpu_context(cpu, mm) != 0) |
574 | drop_mmu_context(mm, cpu); | 575 | drop_mmu_context(mm, cpu); |
575 | } else | 576 | } else |
576 | r4k_blast_icache_page(addr); | 577 | vaddr ? r4k_blast_icache_page(addr) : |
578 | r4k_blast_icache_user_page(addr); | ||
577 | } | 579 | } |
578 | 580 | ||
579 | if (vaddr) { | 581 | if (vaddr) { |