x86/tlb: Fix build warning and crash when building for !SMP
authorAlex Shi <alex.shi@intel.com>
Fri, 20 Jul 2012 01:18:23 +0000 (09:18 +0800)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 20 Jul 2012 22:01:48 +0000 (15:01 -0700)
The incompatible parameter of flush_tlb_mm_range cause build warning.
Fix it by correct parameter.

Ingo Molnar found that this could also cause a user space crash.

Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Reported-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Alex Shi <alex.shi@intel.com>
Link: http://lkml.kernel.org/r/1342747103-19765-1-git-send-email-alex.shi@intel.com
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
arch/x86/include/asm/tlbflush.h

index b5a27bd77669a09af0f32af529452d786240a496..74a44333545ab6fdf8a71b38c573ff78a37e6661 100644 (file)
@@ -105,10 +105,10 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
                __flush_tlb();
 }
 
-static inline void flush_tlb_mm_range(struct vm_area_struct *vma,
+static inline void flush_tlb_mm_range(struct mm_struct *mm,
           unsigned long start, unsigned long end, unsigned long vmflag)
 {
-       if (vma->vm_mm == current->active_mm)
+       if (mm == current->active_mm)
                __flush_tlb();
 }