Răsfoiți Sursa

[POWERPC] Fix oops related to 4xx flush_tlb_page modification

kmap_atomic calls flush_tlb_page with a NULL VMA and thus we end
up dereferencing a NULL pointer to try and get the context.id.

If the VMA is null use the global pid value of 0.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Kumar Gala 17 ani în urmă
părinte
comite
725fb29fd4
1 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  1. 2 2
      include/asm-powerpc/tlbflush.h

+ 2 - 2
include/asm-powerpc/tlbflush.h

@@ -44,13 +44,13 @@ static inline void flush_tlb_mm(struct mm_struct *mm)
 static inline void flush_tlb_page(struct vm_area_struct *vma,
 				  unsigned long vmaddr)
 {
-	_tlbie(vmaddr, vma->vm_mm->context.id);
+	_tlbie(vmaddr, vma ? vma->vm_mm->context.id : 0);
 }
 
 static inline void flush_tlb_page_nohash(struct vm_area_struct *vma,
 					 unsigned long vmaddr)
 {
-	_tlbie(vmaddr, vma->vm_mm->context.id);
+	_tlbie(vmaddr, vma ? vma->vm_mm->context.id : 0);
 }
 
 static inline void flush_tlb_range(struct vm_area_struct *vma,