From: Andrew Morton <akpm@linux-foundation.org>
To: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Cc: linux-mm@kvack.org
Subject: Re: [PATCH] mm: remove redundant var retval in sys_brk
Date: Tue, 8 Jan 2013 13:25:40 -0800 [thread overview]
Message-ID: <20130108132540.e69c40f9.akpm@linux-foundation.org> (raw)
In-Reply-To: <1357352864-29258-1-git-send-email-yuanhan.liu@linux.intel.com>
On Sat, 5 Jan 2013 10:27:44 +0800
Yuanhan Liu <yuanhan.liu@linux.intel.com> wrote:
> There is only one possible return value of sys_brk, which is mm->brk no
> matter succeed or not.
>
> Cc: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
> ---
> mm/mmap.c | 5 ++---
> 1 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/mm/mmap.c b/mm/mmap.c
> index f54b235..ae4093c 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -251,7 +251,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len);
>
> SYSCALL_DEFINE1(brk, unsigned long, brk)
> {
> - unsigned long rlim, retval;
> + unsigned long rlim;
> unsigned long newbrk, oldbrk;
> struct mm_struct *mm = current->mm;
> unsigned long min_brk;
> @@ -307,9 +307,8 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
> set_brk:
> mm->brk = brk;
> out:
> - retval = mm->brk;
> up_write(&mm->mmap_sem);
> - return retval;
> + return mm->brk;
> }
Moving the read outside the locked region opens the possibility that
this thread will pick up the results of modification by some other
thread.
Of course, if two threads are modifying brk at the same time then
that's a userspace problem which can still cuase inconsistent return
values, but I'm inclined to leave the code as-is just from a
quality-of-implementation POV: sys_brk() will reliably return the value
which *this thread* set.
The brk() syscall returns 0 on success, so I assume glibc is throwing
this value away anyway...
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2013-01-08 21:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-05 2:27 [PATCH] mm: remove redundant var retval in sys_brk Yuanhan Liu
2013-01-08 21:25 ` Andrew Morton [this message]
2013-01-09 1:12 ` Yuanhan Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130108132540.e69c40f9.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
--cc=yuanhan.liu@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).