diff options
-rw-r--r-- | arch/arm/mm/mmap.c | 2 | ||||
-rw-r--r-- | arch/arm64/mm/mmap.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/mmap.c | 2 | ||||
-rw-r--r-- | arch/powerpc/mm/mmap.c | 2 | ||||
-rw-r--r-- | arch/s390/mm/mmap.c | 4 | ||||
-rw-r--r-- | arch/sparc/kernel/sys_sparc_64.c | 2 | ||||
-rw-r--r-- | arch/tile/mm/mmap.c | 2 | ||||
-rw-r--r-- | arch/x86/ia32/ia32_aout.c | 2 | ||||
-rw-r--r-- | arch/x86/mm/mmap.c | 2 | ||||
-rw-r--r-- | fs/binfmt_aout.c | 2 | ||||
-rw-r--r-- | fs/binfmt_elf.c | 2 | ||||
-rw-r--r-- | include/linux/mm_types.h | 3 | ||||
-rw-r--r-- | include/linux/sched.h | 2 | ||||
-rw-r--r-- | kernel/fork.c | 4 | ||||
-rw-r--r-- | mm/mmap.c | 28 | ||||
-rw-r--r-- | mm/nommu.c | 4 | ||||
-rw-r--r-- | mm/util.c | 1 |
17 files changed, 0 insertions, 66 deletions
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 10062ceadd1c..0c6356255fe3 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c | |||
@@ -181,11 +181,9 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
181 | if (mmap_is_legacy()) { | 181 | if (mmap_is_legacy()) { |
182 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; | 182 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; |
183 | mm->get_unmapped_area = arch_get_unmapped_area; | 183 | mm->get_unmapped_area = arch_get_unmapped_area; |
184 | mm->unmap_area = arch_unmap_area; | ||
185 | } else { | 184 | } else { |
186 | mm->mmap_base = mmap_base(random_factor); | 185 | mm->mmap_base = mmap_base(random_factor); |
187 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 186 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
188 | mm->unmap_area = arch_unmap_area_topdown; | ||
189 | } | 187 | } |
190 | } | 188 | } |
191 | 189 | ||
diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c index 7c7be7855638..8ed6cb1a900f 100644 --- a/arch/arm64/mm/mmap.c +++ b/arch/arm64/mm/mmap.c | |||
@@ -90,11 +90,9 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
90 | if (mmap_is_legacy()) { | 90 | if (mmap_is_legacy()) { |
91 | mm->mmap_base = TASK_UNMAPPED_BASE; | 91 | mm->mmap_base = TASK_UNMAPPED_BASE; |
92 | mm->get_unmapped_area = arch_get_unmapped_area; | 92 | mm->get_unmapped_area = arch_get_unmapped_area; |
93 | mm->unmap_area = arch_unmap_area; | ||
94 | } else { | 93 | } else { |
95 | mm->mmap_base = mmap_base(); | 94 | mm->mmap_base = mmap_base(); |
96 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 95 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
97 | mm->unmap_area = arch_unmap_area_topdown; | ||
98 | } | 96 | } |
99 | } | 97 | } |
100 | EXPORT_SYMBOL_GPL(arch_pick_mmap_layout); | 98 | EXPORT_SYMBOL_GPL(arch_pick_mmap_layout); |
diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c index 7e5fe2790d8a..f1baadd56e82 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c | |||
@@ -158,11 +158,9 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
158 | if (mmap_is_legacy()) { | 158 | if (mmap_is_legacy()) { |
159 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; | 159 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; |
160 | mm->get_unmapped_area = arch_get_unmapped_area; | 160 | mm->get_unmapped_area = arch_get_unmapped_area; |
161 | mm->unmap_area = arch_unmap_area; | ||
162 | } else { | 161 | } else { |
163 | mm->mmap_base = mmap_base(random_factor); | 162 | mm->mmap_base = mmap_base(random_factor); |
164 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 163 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
165 | mm->unmap_area = arch_unmap_area_topdown; | ||
166 | } | 164 | } |
167 | } | 165 | } |
168 | 166 | ||
diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c index 67a42ed0d2fc..cb8bdbe4972f 100644 --- a/arch/powerpc/mm/mmap.c +++ b/arch/powerpc/mm/mmap.c | |||
@@ -92,10 +92,8 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
92 | if (mmap_is_legacy()) { | 92 | if (mmap_is_legacy()) { |
93 | mm->mmap_base = TASK_UNMAPPED_BASE; | 93 | mm->mmap_base = TASK_UNMAPPED_BASE; |
94 | mm->get_unmapped_area = arch_get_unmapped_area; | 94 | mm->get_unmapped_area = arch_get_unmapped_area; |
95 | mm->unmap_area = arch_unmap_area; | ||
96 | } else { | 95 | } else { |
97 | mm->mmap_base = mmap_base(); | 96 | mm->mmap_base = mmap_base(); |
98 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 97 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
99 | mm->unmap_area = arch_unmap_area_topdown; | ||
100 | } | 98 | } |
101 | } | 99 | } |
diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index 06bafec00278..40023290ee5b 100644 --- a/arch/s390/mm/mmap.c +++ b/arch/s390/mm/mmap.c | |||
@@ -91,11 +91,9 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
91 | if (mmap_is_legacy()) { | 91 | if (mmap_is_legacy()) { |
92 | mm->mmap_base = TASK_UNMAPPED_BASE; | 92 | mm->mmap_base = TASK_UNMAPPED_BASE; |
93 | mm->get_unmapped_area = arch_get_unmapped_area; | 93 | mm->get_unmapped_area = arch_get_unmapped_area; |
94 | mm->unmap_area = arch_unmap_area; | ||
95 | } else { | 94 | } else { |
96 | mm->mmap_base = mmap_base(); | 95 | mm->mmap_base = mmap_base(); |
97 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 96 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
98 | mm->unmap_area = arch_unmap_area_topdown; | ||
99 | } | 97 | } |
100 | } | 98 | } |
101 | 99 | ||
@@ -176,11 +174,9 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
176 | if (mmap_is_legacy()) { | 174 | if (mmap_is_legacy()) { |
177 | mm->mmap_base = TASK_UNMAPPED_BASE; | 175 | mm->mmap_base = TASK_UNMAPPED_BASE; |
178 | mm->get_unmapped_area = s390_get_unmapped_area; | 176 | mm->get_unmapped_area = s390_get_unmapped_area; |
179 | mm->unmap_area = arch_unmap_area; | ||
180 | } else { | 177 | } else { |
181 | mm->mmap_base = mmap_base(); | 178 | mm->mmap_base = mmap_base(); |
182 | mm->get_unmapped_area = s390_get_unmapped_area_topdown; | 179 | mm->get_unmapped_area = s390_get_unmapped_area_topdown; |
183 | mm->unmap_area = arch_unmap_area_topdown; | ||
184 | } | 180 | } |
185 | } | 181 | } |
186 | 182 | ||
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c index 2daaaa6eda23..51561b8b15ba 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c | |||
@@ -290,7 +290,6 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
290 | sysctl_legacy_va_layout) { | 290 | sysctl_legacy_va_layout) { |
291 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; | 291 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; |
292 | mm->get_unmapped_area = arch_get_unmapped_area; | 292 | mm->get_unmapped_area = arch_get_unmapped_area; |
293 | mm->unmap_area = arch_unmap_area; | ||
294 | } else { | 293 | } else { |
295 | /* We know it's 32-bit */ | 294 | /* We know it's 32-bit */ |
296 | unsigned long task_size = STACK_TOP32; | 295 | unsigned long task_size = STACK_TOP32; |
@@ -302,7 +301,6 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
302 | 301 | ||
303 | mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor); | 302 | mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor); |
304 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 303 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
305 | mm->unmap_area = arch_unmap_area_topdown; | ||
306 | } | 304 | } |
307 | } | 305 | } |
308 | 306 | ||
diff --git a/arch/tile/mm/mmap.c b/arch/tile/mm/mmap.c index f96f4cec602a..d67d91ebf63e 100644 --- a/arch/tile/mm/mmap.c +++ b/arch/tile/mm/mmap.c | |||
@@ -66,10 +66,8 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
66 | if (!is_32bit || rlimit(RLIMIT_STACK) == RLIM_INFINITY) { | 66 | if (!is_32bit || rlimit(RLIMIT_STACK) == RLIM_INFINITY) { |
67 | mm->mmap_base = TASK_UNMAPPED_BASE; | 67 | mm->mmap_base = TASK_UNMAPPED_BASE; |
68 | mm->get_unmapped_area = arch_get_unmapped_area; | 68 | mm->get_unmapped_area = arch_get_unmapped_area; |
69 | mm->unmap_area = arch_unmap_area; | ||
70 | } else { | 69 | } else { |
71 | mm->mmap_base = mmap_base(mm); | 70 | mm->mmap_base = mmap_base(mm); |
72 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 71 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
73 | mm->unmap_area = arch_unmap_area_topdown; | ||
74 | } | 72 | } |
75 | } | 73 | } |
diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c index 52ff81cce008..bae3aba95b15 100644 --- a/arch/x86/ia32/ia32_aout.c +++ b/arch/x86/ia32/ia32_aout.c | |||
@@ -308,8 +308,6 @@ static int load_aout_binary(struct linux_binprm *bprm) | |||
308 | (current->mm->start_data = N_DATADDR(ex)); | 308 | (current->mm->start_data = N_DATADDR(ex)); |
309 | current->mm->brk = ex.a_bss + | 309 | current->mm->brk = ex.a_bss + |
310 | (current->mm->start_brk = N_BSSADDR(ex)); | 310 | (current->mm->start_brk = N_BSSADDR(ex)); |
311 | current->mm->free_area_cache = TASK_UNMAPPED_BASE; | ||
312 | current->mm->cached_hole_size = 0; | ||
313 | 311 | ||
314 | retval = setup_arg_pages(bprm, IA32_STACK_TOP, EXSTACK_DEFAULT); | 312 | retval = setup_arg_pages(bprm, IA32_STACK_TOP, EXSTACK_DEFAULT); |
315 | if (retval < 0) { | 313 | if (retval < 0) { |
diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c index 845df6835f9f..62c29a5bfe26 100644 --- a/arch/x86/mm/mmap.c +++ b/arch/x86/mm/mmap.c | |||
@@ -115,10 +115,8 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
115 | if (mmap_is_legacy()) { | 115 | if (mmap_is_legacy()) { |
116 | mm->mmap_base = mmap_legacy_base(); | 116 | mm->mmap_base = mmap_legacy_base(); |
117 | mm->get_unmapped_area = arch_get_unmapped_area; | 117 | mm->get_unmapped_area = arch_get_unmapped_area; |
118 | mm->unmap_area = arch_unmap_area; | ||
119 | } else { | 118 | } else { |
120 | mm->mmap_base = mmap_base(); | 119 | mm->mmap_base = mmap_base(); |
121 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; | 120 | mm->get_unmapped_area = arch_get_unmapped_area_topdown; |
122 | mm->unmap_area = arch_unmap_area_topdown; | ||
123 | } | 121 | } |
124 | } | 122 | } |
diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index bce87694f7b0..89dec7f789a4 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c | |||
@@ -255,8 +255,6 @@ static int load_aout_binary(struct linux_binprm * bprm) | |||
255 | (current->mm->start_data = N_DATADDR(ex)); | 255 | (current->mm->start_data = N_DATADDR(ex)); |
256 | current->mm->brk = ex.a_bss + | 256 | current->mm->brk = ex.a_bss + |
257 | (current->mm->start_brk = N_BSSADDR(ex)); | 257 | (current->mm->start_brk = N_BSSADDR(ex)); |
258 | current->mm->free_area_cache = current->mm->mmap_base; | ||
259 | current->mm->cached_hole_size = 0; | ||
260 | 258 | ||
261 | retval = setup_arg_pages(bprm, STACK_TOP, EXSTACK_DEFAULT); | 259 | retval = setup_arg_pages(bprm, STACK_TOP, EXSTACK_DEFAULT); |
262 | if (retval < 0) { | 260 | if (retval < 0) { |
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index f8a0b0efda44..100edcc5e312 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -738,8 +738,6 @@ static int load_elf_binary(struct linux_binprm *bprm) | |||
738 | 738 | ||
739 | /* Do this so that we can load the interpreter, if need be. We will | 739 | /* Do this so that we can load the interpreter, if need be. We will |
740 | change some of these later */ | 740 | change some of these later */ |
741 | current->mm->free_area_cache = current->mm->mmap_base; | ||
742 | current->mm->cached_hole_size = 0; | ||
743 | retval = setup_arg_pages(bprm, randomize_stack_top(STACK_TOP), | 741 | retval = setup_arg_pages(bprm, randomize_stack_top(STACK_TOP), |
744 | executable_stack); | 742 | executable_stack); |
745 | if (retval < 0) { | 743 | if (retval < 0) { |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index ace9a5f01c64..fb425aa16c01 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
@@ -330,12 +330,9 @@ struct mm_struct { | |||
330 | unsigned long (*get_unmapped_area) (struct file *filp, | 330 | unsigned long (*get_unmapped_area) (struct file *filp, |
331 | unsigned long addr, unsigned long len, | 331 | unsigned long addr, unsigned long len, |
332 | unsigned long pgoff, unsigned long flags); | 332 | unsigned long pgoff, unsigned long flags); |
333 | void (*unmap_area) (struct mm_struct *mm, unsigned long addr); | ||
334 | #endif | 333 | #endif |
335 | unsigned long mmap_base; /* base of mmap area */ | 334 | unsigned long mmap_base; /* base of mmap area */ |
336 | unsigned long task_size; /* size of task vm space */ | 335 | unsigned long task_size; /* size of task vm space */ |
337 | unsigned long cached_hole_size; /* if non-zero, the largest hole below free_area_cache */ | ||
338 | unsigned long free_area_cache; /* first hole of size cached_hole_size or larger */ | ||
339 | unsigned long highest_vm_end; /* highest vma end address */ | 336 | unsigned long highest_vm_end; /* highest vma end address */ |
340 | pgd_t * pgd; | 337 | pgd_t * pgd; |
341 | atomic_t mm_users; /* How many users with user space? */ | 338 | atomic_t mm_users; /* How many users with user space? */ |
diff --git a/include/linux/sched.h b/include/linux/sched.h index f99d57e0ae47..50d04b92ceda 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -322,8 +322,6 @@ extern unsigned long | |||
322 | arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, | 322 | arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr, |
323 | unsigned long len, unsigned long pgoff, | 323 | unsigned long len, unsigned long pgoff, |
324 | unsigned long flags); | 324 | unsigned long flags); |
325 | extern void arch_unmap_area(struct mm_struct *, unsigned long); | ||
326 | extern void arch_unmap_area_topdown(struct mm_struct *, unsigned long); | ||
327 | #else | 325 | #else |
328 | static inline void arch_pick_mmap_layout(struct mm_struct *mm) {} | 326 | static inline void arch_pick_mmap_layout(struct mm_struct *mm) {} |
329 | #endif | 327 | #endif |
diff --git a/kernel/fork.c b/kernel/fork.c index 6e6a1c11b3e5..66635c80a813 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -365,8 +365,6 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | |||
365 | mm->locked_vm = 0; | 365 | mm->locked_vm = 0; |
366 | mm->mmap = NULL; | 366 | mm->mmap = NULL; |
367 | mm->mmap_cache = NULL; | 367 | mm->mmap_cache = NULL; |
368 | mm->free_area_cache = oldmm->mmap_base; | ||
369 | mm->cached_hole_size = ~0UL; | ||
370 | mm->map_count = 0; | 368 | mm->map_count = 0; |
371 | cpumask_clear(mm_cpumask(mm)); | 369 | cpumask_clear(mm_cpumask(mm)); |
372 | mm->mm_rb = RB_ROOT; | 370 | mm->mm_rb = RB_ROOT; |
@@ -540,8 +538,6 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p) | |||
540 | mm->nr_ptes = 0; | 538 | mm->nr_ptes = 0; |
541 | memset(&mm->rss_stat, 0, sizeof(mm->rss_stat)); | 539 | memset(&mm->rss_stat, 0, sizeof(mm->rss_stat)); |
542 | spin_lock_init(&mm->page_table_lock); | 540 | spin_lock_init(&mm->page_table_lock); |
543 | mm->free_area_cache = TASK_UNMAPPED_BASE; | ||
544 | mm->cached_hole_size = ~0UL; | ||
545 | mm_init_aio(mm); | 541 | mm_init_aio(mm); |
546 | mm_init_owner(mm, p); | 542 | mm_init_owner(mm, p); |
547 | 543 | ||
@@ -1878,15 +1878,6 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, | |||
1878 | } | 1878 | } |
1879 | #endif | 1879 | #endif |
1880 | 1880 | ||
1881 | void arch_unmap_area(struct mm_struct *mm, unsigned long addr) | ||
1882 | { | ||
1883 | /* | ||
1884 | * Is this a new hole at the lowest possible address? | ||
1885 | */ | ||
1886 | if (addr >= TASK_UNMAPPED_BASE && addr < mm->free_area_cache) | ||
1887 | mm->free_area_cache = addr; | ||
1888 | } | ||
1889 | |||
1890 | /* | 1881 | /* |
1891 | * This mmap-allocator allocates new areas top-down from below the | 1882 | * This mmap-allocator allocates new areas top-down from below the |
1892 | * stack's low limit (the base): | 1883 | * stack's low limit (the base): |
@@ -1943,19 +1934,6 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, | |||
1943 | } | 1934 | } |
1944 | #endif | 1935 | #endif |
1945 | 1936 | ||
1946 | void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr) | ||
1947 | { | ||
1948 | /* | ||
1949 | * Is this a new hole at the highest possible address? | ||
1950 | */ | ||
1951 | if (addr > mm->free_area_cache) | ||
1952 | mm->free_area_cache = addr; | ||
1953 | |||
1954 | /* dont allow allocations above current base */ | ||
1955 | if (mm->free_area_cache > mm->mmap_base) | ||
1956 | mm->free_area_cache = mm->mmap_base; | ||
1957 | } | ||
1958 | |||
1959 | unsigned long | 1937 | unsigned long |
1960 | get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, | 1938 | get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, |
1961 | unsigned long pgoff, unsigned long flags) | 1939 | unsigned long pgoff, unsigned long flags) |
@@ -2376,7 +2354,6 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma, | |||
2376 | { | 2354 | { |
2377 | struct vm_area_struct **insertion_point; | 2355 | struct vm_area_struct **insertion_point; |
2378 | struct vm_area_struct *tail_vma = NULL; | 2356 | struct vm_area_struct *tail_vma = NULL; |
2379 | unsigned long addr; | ||
2380 | 2357 | ||
2381 | insertion_point = (prev ? &prev->vm_next : &mm->mmap); | 2358 | insertion_point = (prev ? &prev->vm_next : &mm->mmap); |
2382 | vma->vm_prev = NULL; | 2359 | vma->vm_prev = NULL; |
@@ -2393,11 +2370,6 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma, | |||
2393 | } else | 2370 | } else |
2394 | mm->highest_vm_end = prev ? prev->vm_end : 0; | 2371 | mm->highest_vm_end = prev ? prev->vm_end : 0; |
2395 | tail_vma->vm_next = NULL; | 2372 | tail_vma->vm_next = NULL; |
2396 | if (mm->unmap_area == arch_unmap_area) | ||
2397 | addr = prev ? prev->vm_end : mm->mmap_base; | ||
2398 | else | ||
2399 | addr = vma ? vma->vm_start : mm->mmap_base; | ||
2400 | mm->unmap_area(mm, addr); | ||
2401 | mm->mmap_cache = NULL; /* Kill the cache. */ | 2373 | mm->mmap_cache = NULL; /* Kill the cache. */ |
2402 | } | 2374 | } |
2403 | 2375 | ||
diff --git a/mm/nommu.c b/mm/nommu.c index e44e6e0a125c..ecd1f158548e 100644 --- a/mm/nommu.c +++ b/mm/nommu.c | |||
@@ -1871,10 +1871,6 @@ unsigned long arch_get_unmapped_area(struct file *file, unsigned long addr, | |||
1871 | return -ENOMEM; | 1871 | return -ENOMEM; |
1872 | } | 1872 | } |
1873 | 1873 | ||
1874 | void arch_unmap_area(struct mm_struct *mm, unsigned long addr) | ||
1875 | { | ||
1876 | } | ||
1877 | |||
1878 | void unmap_mapping_range(struct address_space *mapping, | 1874 | void unmap_mapping_range(struct address_space *mapping, |
1879 | loff_t const holebegin, loff_t const holelen, | 1875 | loff_t const holebegin, loff_t const holelen, |
1880 | int even_cows) | 1876 | int even_cows) |
@@ -295,7 +295,6 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
295 | { | 295 | { |
296 | mm->mmap_base = TASK_UNMAPPED_BASE; | 296 | mm->mmap_base = TASK_UNMAPPED_BASE; |
297 | mm->get_unmapped_area = arch_get_unmapped_area; | 297 | mm->get_unmapped_area = arch_get_unmapped_area; |
298 | mm->unmap_area = arch_unmap_area; | ||
299 | } | 298 | } |
300 | #endif | 299 | #endif |
301 | 300 | ||