aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/memory.c')
-rw-r--r--mm/memory.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 9cf3f341a28a..b5a4aadd961a 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1086,6 +1086,7 @@ int get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
1086 default: 1086 default:
1087 BUG(); 1087 BUG();
1088 } 1088 }
1089 cond_resched();
1089 } 1090 }
1090 if (pages) { 1091 if (pages) {
1091 pages[i] = page; 1092 pages[i] = page;
@@ -2169,11 +2170,13 @@ retry:
2169 * after the next truncate_count read. 2170 * after the next truncate_count read.
2170 */ 2171 */
2171 2172
2172 /* no page was available -- either SIGBUS or OOM */ 2173 /* no page was available -- either SIGBUS, OOM or REFAULT */
2173 if (new_page == NOPAGE_SIGBUS) 2174 if (unlikely(new_page == NOPAGE_SIGBUS))
2174 return VM_FAULT_SIGBUS; 2175 return VM_FAULT_SIGBUS;
2175 if (new_page == NOPAGE_OOM) 2176 else if (unlikely(new_page == NOPAGE_OOM))
2176 return VM_FAULT_OOM; 2177 return VM_FAULT_OOM;
2178 else if (unlikely(new_page == NOPAGE_REFAULT))
2179 return VM_FAULT_MINOR;
2177 2180
2178 /* 2181 /*
2179 * Should we do an early C-O-W break? 2182 * Should we do an early C-O-W break?