*/
 extern pgprot_t protection_map[16];
 
-#define FAULT_FLAG_WRITE       0x01    /* Fault was a write access */
-#define FAULT_FLAG_MKWRITE     0x02    /* Fault was mkwrite of existing pte */
-#define FAULT_FLAG_ALLOW_RETRY 0x04    /* Retry fault if blocking */
-#define FAULT_FLAG_RETRY_NOWAIT        0x08    /* Don't drop mmap_sem and wait when retrying */
-#define FAULT_FLAG_KILLABLE    0x10    /* The fault task is in SIGKILL killable region */
-#define FAULT_FLAG_TRIED       0x20    /* Second try */
-#define FAULT_FLAG_USER                0x40    /* The fault originated in userspace */
-#define FAULT_FLAG_REMOTE      0x80    /* faulting for non current tsk/mm */
-#define FAULT_FLAG_INSTRUCTION  0x100  /* The fault was during an instruction fetch */
+/**
+ * Fault flag definitions.
+ *
+ * @FAULT_FLAG_WRITE: Fault was a write fault.
+ * @FAULT_FLAG_MKWRITE: Fault was mkwrite of existing PTE.
+ * @FAULT_FLAG_ALLOW_RETRY: Allow to retry the fault if blocked.
+ * @FAULT_FLAG_RETRY_NOWAIT: Don't drop mmap_sem and wait when retrying.
+ * @FAULT_FLAG_KILLABLE: The fault task is in SIGKILL killable region.
+ * @FAULT_FLAG_TRIED: The fault has been tried once.
+ * @FAULT_FLAG_USER: The fault originated in userspace.
+ * @FAULT_FLAG_REMOTE: The fault is not for current task/mm.
+ * @FAULT_FLAG_INSTRUCTION: The fault was during an instruction fetch.
+ * @FAULT_FLAG_INTERRUPTIBLE: The fault can be interrupted by non-fatal signals.
+ */
+#define FAULT_FLAG_WRITE                       0x01
+#define FAULT_FLAG_MKWRITE                     0x02
+#define FAULT_FLAG_ALLOW_RETRY                 0x04
+#define FAULT_FLAG_RETRY_NOWAIT                        0x08
+#define FAULT_FLAG_KILLABLE                    0x10
+#define FAULT_FLAG_TRIED                       0x20
+#define FAULT_FLAG_USER                                0x40
+#define FAULT_FLAG_REMOTE                      0x80
+#define FAULT_FLAG_INSTRUCTION                 0x100
+#define FAULT_FLAG_INTERRUPTIBLE               0x200
 
 /*
  * The default fault flags that should be used by most of the
  * arch-specific page fault handlers.
  */
 #define FAULT_FLAG_DEFAULT  (FAULT_FLAG_ALLOW_RETRY | \
-                            FAULT_FLAG_KILLABLE)
+                            FAULT_FLAG_KILLABLE | \
+                            FAULT_FLAG_INTERRUPTIBLE)
 
 #define FAULT_FLAG_TRACE \
        { FAULT_FLAG_WRITE,             "WRITE" }, \
        { FAULT_FLAG_TRIED,             "TRIED" }, \
        { FAULT_FLAG_USER,              "USER" }, \
        { FAULT_FLAG_REMOTE,            "REMOTE" }, \
-       { FAULT_FLAG_INSTRUCTION,       "INSTRUCTION" }
+       { FAULT_FLAG_INSTRUCTION,       "INSTRUCTION" }, \
+       { FAULT_FLAG_INTERRUPTIBLE,     "INTERRUPTIBLE" }
 
 /*
  * vm_fault is filled by the the pagefault handler and passed to the vma's