[MIPS] Do not use drop_mmu_context to flusing other task's VIPT I-cache.
c-r4k.c and c-sb1.c use drop_mmu_context() to flush virtually tagged I-caches, but this does not work for flushing other task's icache. This is for example triggered by copy_to_user_page() called from ptrace(2). Use indexed flush for such cases. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Cette révision appartient à :

révisé par
Ralf Baechle

Parent
a94d702049
révision
f6502791d7
@@ -475,7 +475,7 @@ static inline void local_r4k_flush_cache_page(void *args)
|
||||
}
|
||||
}
|
||||
if (exec) {
|
||||
if (cpu_has_vtag_icache) {
|
||||
if (cpu_has_vtag_icache && mm == current->active_mm) {
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
if (cpu_context(cpu, mm) != 0)
|
||||
@@ -599,7 +599,7 @@ static inline void local_r4k_flush_icache_page(void *args)
|
||||
* We're not sure of the virtual address(es) involved here, so
|
||||
* we have to flush the entire I-cache.
|
||||
*/
|
||||
if (cpu_has_vtag_icache) {
|
||||
if (cpu_has_vtag_icache && vma->vm_mm == current->active_mm) {
|
||||
int cpu = smp_processor_id();
|
||||
|
||||
if (cpu_context(cpu, vma->vm_mm) != 0)
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur