Эх сурвалжийг харах

sh: Fix split ptlock for user mappings in __do_page_fault().

There was a bug that got introduced when the split ptlock changes
went in where mm could be unintialized for user mappings, this
fixes it up..

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Paul Mundt 18 жил өмнө
parent
commit
f647d33f87
1 өөрчлөгдсөн 4 нэмэгдсэн , 3 устгасан
  1. 4 3
      arch/sh/mm/fault.c

+ 4 - 3
arch/sh/mm/fault.c

@@ -210,10 +210,11 @@ asmlinkage int __do_page_fault(struct pt_regs *regs, unsigned long writeaccess,
 	 * are always mapped, whether it be due to legacy behaviour in
 	 * 29-bit mode, or due to PMB configuration in 32-bit mode.
 	 */
-	if (address >= P3SEG && address < P3_ADDR_MAX)
+	if (address >= P3SEG && address < P3_ADDR_MAX) {
 		pgd = pgd_offset_k(address);
-	else {
-		if (unlikely(address >= TASK_SIZE || !current->mm))
+		mm = NULL;
+	} else {
+		if (unlikely(address >= TASK_SIZE || !(mm = current->mm)))
 			return 1;
 
 		pgd = pgd_offset(current->mm, address);