diff options
author | Hugh Dickins <hugh.dickins@tiscali.co.uk> | 2009-09-21 20:03:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-22 10:17:40 -0400 |
commit | 1c3aff1ceec2cc86810e2690e67873ff0c505862 (patch) | |
tree | bf2f1badfd3f8859299f00c8a95c0a11e5cfa778 /mm/memory.c | |
parent | 408e82b78bcc9f1b47c76e833c3df97f675947de (diff) |
mm: remove unused GUP flags
GUP_FLAGS_IGNORE_VMA_PERMISSIONS and GUP_FLAGS_IGNORE_SIGKILL were
flags added solely to prevent __get_user_pages() from doing some of
what it usually does, in the munlock case: we can now remove them.
Signed-off-by: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Acked-by: Rik van Riel <riel@redhat.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Nick Piggin <npiggin@suse.de>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Minchan Kim <minchan.kim@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/mm/memory.c b/mm/memory.c index 3cbeaaba5642..4b5200f5f35a 100644 --- a/mm/memory.c +++ b/mm/memory.c | |||
@@ -1217,8 +1217,6 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, | |||
1217 | unsigned int vm_flags = 0; | 1217 | unsigned int vm_flags = 0; |
1218 | int write = !!(flags & GUP_FLAGS_WRITE); | 1218 | int write = !!(flags & GUP_FLAGS_WRITE); |
1219 | int force = !!(flags & GUP_FLAGS_FORCE); | 1219 | int force = !!(flags & GUP_FLAGS_FORCE); |
1220 | int ignore = !!(flags & GUP_FLAGS_IGNORE_VMA_PERMISSIONS); | ||
1221 | int ignore_sigkill = !!(flags & GUP_FLAGS_IGNORE_SIGKILL); | ||
1222 | 1220 | ||
1223 | if (nr_pages <= 0) | 1221 | if (nr_pages <= 0) |
1224 | return 0; | 1222 | return 0; |
@@ -1244,7 +1242,7 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, | |||
1244 | pte_t *pte; | 1242 | pte_t *pte; |
1245 | 1243 | ||
1246 | /* user gate pages are read-only */ | 1244 | /* user gate pages are read-only */ |
1247 | if (!ignore && write) | 1245 | if (write) |
1248 | return i ? : -EFAULT; | 1246 | return i ? : -EFAULT; |
1249 | if (pg > TASK_SIZE) | 1247 | if (pg > TASK_SIZE) |
1250 | pgd = pgd_offset_k(pg); | 1248 | pgd = pgd_offset_k(pg); |
@@ -1278,7 +1276,7 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, | |||
1278 | 1276 | ||
1279 | if (!vma || | 1277 | if (!vma || |
1280 | (vma->vm_flags & (VM_IO | VM_PFNMAP)) || | 1278 | (vma->vm_flags & (VM_IO | VM_PFNMAP)) || |
1281 | (!ignore && !(vm_flags & vma->vm_flags))) | 1279 | !(vm_flags & vma->vm_flags)) |
1282 | return i ? : -EFAULT; | 1280 | return i ? : -EFAULT; |
1283 | 1281 | ||
1284 | if (is_vm_hugetlb_page(vma)) { | 1282 | if (is_vm_hugetlb_page(vma)) { |
@@ -1298,13 +1296,9 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm, | |||
1298 | 1296 | ||
1299 | /* | 1297 | /* |
1300 | * If we have a pending SIGKILL, don't keep faulting | 1298 | * If we have a pending SIGKILL, don't keep faulting |
1301 | * pages and potentially allocating memory, unless | 1299 | * pages and potentially allocating memory. |
1302 | * current is handling munlock--e.g., on exit. In | ||
1303 | * that case, we are not allocating memory. Rather, | ||
1304 | * we're only unlocking already resident/mapped pages. | ||
1305 | */ | 1300 | */ |
1306 | if (unlikely(!ignore_sigkill && | 1301 | if (unlikely(fatal_signal_pending(current))) |
1307 | fatal_signal_pending(current))) | ||
1308 | return i ? i : -ERESTARTSYS; | 1302 | return i ? i : -ERESTARTSYS; |
1309 | 1303 | ||
1310 | if (write) | 1304 | if (write) |