sh: Fix split ptlock for user mappings in __do_page_fault().
authorPaul Mundt <lethal@linux-sh.org>
Wed, 27 Sep 2006 06:30:24 +0000 (15:30 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 27 Sep 2006 06:30:24 +0000 (15:30 +0900)
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>
arch/sh/mm/fault.c

index 7a03ffe6daddd6ce18d3942fc5a9f5aed5cb287e..dc461d2bc183532e95984242f90d6b597ad3522d 100644 (file)
@@ -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);