aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/ia32/ia32_aout.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-05-27 18:57:31 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-05-27 18:57:31 -0400
commit5d22fc25d4fc8096d2d7df27ea1893d4e055e764 (patch)
tree464a86dc3d004dd334e37a8fe7e7b42f8511581e /arch/x86/ia32/ia32_aout.c
parent287980e49ffc0f6d911601e7e352a812ed27768e (diff)
mm: remove more IS_ERR_VALUE abuses
The do_brk() and vm_brk() return value was "unsigned long" and returned the starting address on success, and an error value on failure. The reasons are entirely historical, and go back to it basically behaving like the mmap() interface does. However, nobody actually wanted that interface, and it causes totally pointless IS_ERR_VALUE() confusion. What every single caller actually wants is just the simpler integer return of zero for success and negative error number on failure. So just convert to that much clearer and more common calling convention, and get rid of all the IS_ERR_VALUE() uses wrt vm_brk(). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/x86/ia32/ia32_aout.c')
-rw-r--r--arch/x86/ia32/ia32_aout.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
index f5e737ff0022..cb26f18d43af 100644
--- a/arch/x86/ia32/ia32_aout.c
+++ b/arch/x86/ia32/ia32_aout.c
@@ -116,12 +116,12 @@ static struct linux_binfmt aout_format = {
116 .min_coredump = PAGE_SIZE 116 .min_coredump = PAGE_SIZE
117}; 117};
118 118
119static unsigned long set_brk(unsigned long start, unsigned long end) 119static int set_brk(unsigned long start, unsigned long end)
120{ 120{
121 start = PAGE_ALIGN(start); 121 start = PAGE_ALIGN(start);
122 end = PAGE_ALIGN(end); 122 end = PAGE_ALIGN(end);
123 if (end <= start) 123 if (end <= start)
124 return start; 124 return 0;
125 return vm_brk(start, end - start); 125 return vm_brk(start, end - start);
126} 126}
127 127
@@ -321,7 +321,7 @@ static int load_aout_binary(struct linux_binprm *bprm)
321 321
322 error = vm_brk(text_addr & PAGE_MASK, map_size); 322 error = vm_brk(text_addr & PAGE_MASK, map_size);
323 323
324 if (error != (text_addr & PAGE_MASK)) 324 if (error)
325 return error; 325 return error;
326 326
327 error = read_code(bprm->file, text_addr, 32, 327 error = read_code(bprm->file, text_addr, 32,
@@ -350,7 +350,7 @@ static int load_aout_binary(struct linux_binprm *bprm)
350 350
351 if (!bprm->file->f_op->mmap || (fd_offset & ~PAGE_MASK) != 0) { 351 if (!bprm->file->f_op->mmap || (fd_offset & ~PAGE_MASK) != 0) {
352 error = vm_brk(N_TXTADDR(ex), ex.a_text+ex.a_data); 352 error = vm_brk(N_TXTADDR(ex), ex.a_text+ex.a_data);
353 if (IS_ERR_VALUE(error)) 353 if (error)
354 return error; 354 return error;
355 355
356 read_code(bprm->file, N_TXTADDR(ex), fd_offset, 356 read_code(bprm->file, N_TXTADDR(ex), fd_offset,
@@ -378,7 +378,7 @@ static int load_aout_binary(struct linux_binprm *bprm)
378 378
379beyond_if: 379beyond_if:
380 error = set_brk(current->mm->start_brk, current->mm->brk); 380 error = set_brk(current->mm->start_brk, current->mm->brk);
381 if (IS_ERR_VALUE(error)) 381 if (error)
382 return error; 382 return error;
383 383
384 set_binfmt(&aout_format); 384 set_binfmt(&aout_format);
@@ -441,7 +441,7 @@ static int load_aout_library(struct file *file)
441 } 441 }
442#endif 442#endif
443 retval = vm_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss); 443 retval = vm_brk(start_addr, ex.a_text + ex.a_data + ex.a_bss);
444 if (IS_ERR_VALUE(retval)) 444 if (retval)
445 goto out; 445 goto out;
446 446
447 read_code(file, start_addr, N_TXTOFF(ex), 447 read_code(file, start_addr, N_TXTOFF(ex),
@@ -461,9 +461,8 @@ static int load_aout_library(struct file *file)
461 len = PAGE_ALIGN(ex.a_text + ex.a_data); 461 len = PAGE_ALIGN(ex.a_text + ex.a_data);
462 bss = ex.a_text + ex.a_data + ex.a_bss; 462 bss = ex.a_text + ex.a_data + ex.a_bss;
463 if (bss > len) { 463 if (bss > len) {
464 error = vm_brk(start_addr + len, bss - len); 464 retval = vm_brk(start_addr + len, bss - len);
465 retval = error; 465 if (retval)
466 if (error != start_addr + len)
467 goto out; 466 goto out;
468 } 467 }
469 retval = 0; 468 retval = 0;