mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +00:00
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>
This commit is contained in:
parent
287980e49f
commit
5d22fc25d4
6 changed files with 30 additions and 36 deletions
|
@ -96,10 +96,9 @@ static int set_brk(unsigned long start, unsigned long end)
|
|||
start = ELF_PAGEALIGN(start);
|
||||
end = ELF_PAGEALIGN(end);
|
||||
if (end > start) {
|
||||
unsigned long addr;
|
||||
addr = vm_brk(start, end - start);
|
||||
if (BAD_ADDR(addr))
|
||||
return addr;
|
||||
int error = vm_brk(start, end - start);
|
||||
if (error)
|
||||
return error;
|
||||
}
|
||||
current->mm->start_brk = current->mm->brk = end;
|
||||
return 0;
|
||||
|
@ -629,7 +628,7 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
|
|||
|
||||
/* Map the last of the bss segment */
|
||||
error = vm_brk(elf_bss, last_bss - elf_bss);
|
||||
if (BAD_ADDR(error))
|
||||
if (error)
|
||||
goto out;
|
||||
}
|
||||
|
||||
|
@ -1178,7 +1177,7 @@ static int load_elf_library(struct file *file)
|
|||
bss = eppnt->p_memsz + eppnt->p_vaddr;
|
||||
if (bss > len) {
|
||||
error = vm_brk(len, bss - len);
|
||||
if (BAD_ADDR(error))
|
||||
if (error)
|
||||
goto out_free_ph;
|
||||
}
|
||||
error = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue