[PATCH] uml: x86_64 fixes
[pandora-kernel.git] / arch / um / kernel / skas / uaccess.c
index f7da9d0..7519528 100644 (file)
@@ -29,9 +29,12 @@ static unsigned long maybe_map(unsigned long virt, int is_write)
        if(IS_ERR(phys) || (is_write && !pte_write(pte))){
                err = handle_page_fault(virt, 0, is_write, 1, &dummy_code);
                if(err)
-                       return(0);
+                       return(-1UL);
                phys = um_virt_to_phys(current, virt, NULL);
        }
+        if(IS_ERR(phys))
+                phys = (void *) -1;
+
        return((unsigned long) phys);
 }
 
@@ -42,7 +45,7 @@ static int do_op(unsigned long addr, int len, int is_write,
        int n;
 
        addr = maybe_map(addr, is_write);
-       if(addr == -1)
+       if(addr == -1UL)
                return(-1);
 
        page = phys_to_page(addr);