From: George G. Davis Date: Thu, 21 Sep 2006 02:57:04 +0000 (+0100) Subject: [ARM] 3853/1: Fix flush_ptrace_access() thinko for nonaliasing VIPT cache case X-Git-Tag: v2.6.19-rc1~885^2~27 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a71ebdfa5243765e455a9ec2d6360e1704c6599e;p=linux-2.6 [ARM] 3853/1: Fix flush_ptrace_access() thinko for nonaliasing VIPT cache case Fix thinko in the flush_ptrace_access() "if (expr)" for the ARM VIPT non-aliasing cache case. We only need to flush cache when VM_EXEC is set in vma->vm_flags but "if (expr) always evaluates to true on UP systems for the ARM VIPT non-aliasing cache case. Signed-off-by: George G. Davis Signed-off-by: Russell King --- diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 1efb05c64d..454205b789 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c @@ -107,7 +107,7 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, /* VIPT non-aliasing cache */ if (cpu_isset(smp_processor_id(), vma->vm_mm->cpu_vm_mask) && - vma->vm_flags | VM_EXEC) { + vma->vm_flags & VM_EXEC) { unsigned long addr = (unsigned long)kaddr; /* only flushing the kernel mapping on non-aliasing VIPT */ __cpuc_coherent_kern_range(addr, addr + len);