From: Alexey Klimov Date: Fri, 6 Nov 2015 02:46:00 +0000 (-0800) Subject: mm/mlock.c: reorganize mlockall() return values and remove goto-out label X-Git-Tag: Ubuntu-5.0.0-8.9~8388^2~114 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=86d2adccfbe7d5a1f050fa08db9638c9168736d9;p=mirror_ubuntu-disco-kernel.git mm/mlock.c: reorganize mlockall() return values and remove goto-out label In mlockall syscall wrapper after out-label for goto code just doing return. Remove goto out statements and return error values directly. Also instead of rewriting ret variable before every if-check move returns to 'error'-like path under if-check. Objdump asm listing showed me reducing by few asm lines. Object file size descreased from 220592 bytes to 220528 bytes for me (for aarch64). Signed-off-by: Alexey Klimov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/mm/mlock.c b/mm/mlock.c index 25936680064f..7e6ad9c4c549 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -684,14 +684,13 @@ out: SYSCALL_DEFINE1(mlockall, int, flags) { unsigned long lock_limit; - int ret = -EINVAL; + int ret; if (!flags || (flags & ~(MCL_CURRENT | MCL_FUTURE))) - goto out; + return -EINVAL; - ret = -EPERM; if (!can_do_mlock()) - goto out; + return -EPERM; if (flags & MCL_CURRENT) lru_add_drain_all(); /* flush pagevec */ @@ -708,7 +707,7 @@ SYSCALL_DEFINE1(mlockall, int, flags) up_write(¤t->mm->mmap_sem); if (!ret && (flags & MCL_CURRENT)) mm_populate(0, TASK_SIZE); -out: + return ret; }