From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753711AbbIJB6J (ORCPT ); Wed, 9 Sep 2015 21:58:09 -0400 Received: from mail-lb0-f177.google.com ([209.85.217.177]:36287 "EHLO mail-lb0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752202AbbIJB6H (ORCPT ); Wed, 9 Sep 2015 21:58:07 -0400 From: Alexey Klimov To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, jeffv@google.com, kirill.shutemov@linux.intel.com, rientjes@google.com, akpm@linux-foundation.org, alexey.klimov@linaro.org, yury.norov@gmail.com, Alexey Klimov Subject: [PATCH] syscall/mlockall: reorganize return values and remove goto-out label Date: Thu, 10 Sep 2015 04:57:58 +0300 Message-Id: <1441850278-11173-1-git-send-email-klimov.linux@gmail.com> X-Mailer: git-send-email 2.1.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- mm/mlock.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mm/mlock.c b/mm/mlock.c index 25936680..7e6ad9c 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; } -- 2.1.4