The patch titled

     uml: tlb flushing fix

has been added to the -mm tree.  Its filename is

     uml-tlb-flushing-fix.patch

Patches currently in -mm which might be from [EMAIL PROTECTED] are

uml-tlb-flushing-fix.patch



From: Benjamin LaHaise <[EMAIL PROTECTED]>

This patch fixes a fairly serious tlb flushing bug that makes aio use under
uml very unreliable -- SEGVs, Oops and panic()s occur as a result of stale
tlb entires being used by uml when aio switches mms due to the fact that
uml does not implement the activate_mm() hook.  This patch introduces a
simple but correct approach (read: hammer) for implementing activate_mm()
in uml by doing a force_flush_all() if the new mm is different from old. 
With this patch in place, uml is able to succeed at the aio test case that
was randomly faulting for me before.

Cc: Jeff Dike <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---

 include/asm-um/mmu_context.h |    4 ++++
 1 files changed, 4 insertions(+)

diff -puN include/asm-um/mmu_context.h~uml-tlb-flushing-fix 
include/asm-um/mmu_context.h
--- 25/include/asm-um/mmu_context.h~uml-tlb-flushing-fix        Mon Jul 11 
15:01:15 2005
+++ 25-akpm/include/asm-um/mmu_context.h        Mon Jul 11 15:01:15 2005
@@ -16,8 +16,12 @@
 
 #define deactivate_mm(tsk,mm)  do { } while (0)
 
+extern void force_flush_all(void);
+
 static inline void activate_mm(struct mm_struct *old, struct mm_struct *new)
 {
+       if (old != new)
+               force_flush_all();
 }
 
 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, 
_
-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to