|
@@ -349,6 +349,13 @@ retry:
|
|
|
if (likely(!(fault & (VM_FAULT_ERROR | VM_FAULT_BADMAP | VM_FAULT_BADACCESS))))
|
|
|
return 0;
|
|
|
|
|
|
+ /*
|
|
|
+ * If we are in kernel mode at this point, we
|
|
|
+ * have no context to handle this fault with.
|
|
|
+ */
|
|
|
+ if (!user_mode(regs))
|
|
|
+ goto no_context;
|
|
|
+
|
|
|
if (fault & VM_FAULT_OOM) {
|
|
|
/*
|
|
|
* We ran out of memory, call the OOM killer, and return to
|
|
@@ -359,13 +366,6 @@ retry:
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
- /*
|
|
|
- * If we are in kernel mode at this point, we
|
|
|
- * have no context to handle this fault with.
|
|
|
- */
|
|
|
- if (!user_mode(regs))
|
|
|
- goto no_context;
|
|
|
-
|
|
|
if (fault & VM_FAULT_SIGBUS) {
|
|
|
/*
|
|
|
* We had some memory, but were unable to
|