linux-mips
[Top] [All Lists]

[PATCH] MIPS: Cleanup arch_get_unmapped_area

To: Kevin Cernekee <cernekee@gmail.com>
Subject: [PATCH] MIPS: Cleanup arch_get_unmapped_area
From: Ralf Baechle <ralf@linux-mips.org>
Date: Tue, 17 May 2011 16:18:09 +0100
Cc: Jian Peng <jipeng@broadcom.com>, David Daney <ddaney@caviumnetworks.com>, "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>
In-reply-to: <BANLkTikq04wuK=bz+Lieavmm3oDtoYWKxg@mail.gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <E18F441196CA634DB8E1F1C56A50A8743242B54C8A@IRVEXCHCCR01.corp.ad.broadcom.com> <4DD1BD72.2000408@caviumnetworks.com> <BANLkTikq04wuK=bz+Lieavmm3oDtoYWKxg@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.21 (2010-09-15)
On Mon, May 16, 2011 at 06:27:17PM -0700, Kevin Cernekee wrote:

> >> +#ifdef CONFIG_32BIT
> >> +       task_size = TASK_SIZE;
> >> +#else /* Must be CONFIG_64BIT*/
> >> +       task_size = test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 :
> >> TASK_SIZE;
> >> +#endif
> 
> Can the "#else" clause and "task_size" local variable be eliminated?
> TASK_SIZE now performs this check automatically (although that wasn't
> always the case).


As noticed by Kevin Cernekee <cernekee@gmail.com> in
http://www.linux-mips.org/cgi-bin/extract-mesg.cgi?a=linux-mips&m=2011-05&i=BANLkTikq04wuK%3Dbz%2BLieavmm3oDtoYWKxg%40mail.gmail.com

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

 arch/mips/kernel/syscall.c |   17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

Index: linux-queue/arch/mips/kernel/syscall.c
===================================================================
--- linux-queue.orig/arch/mips/kernel/syscall.c
+++ linux-queue/arch/mips/kernel/syscall.c
@@ -79,20 +79,13 @@ unsigned long arch_get_unmapped_area(str
 {
        struct vm_area_struct * vmm;
        int do_color_align;
-       unsigned long task_size;
 
-#ifdef CONFIG_32BIT
-       task_size = TASK_SIZE;
-#else /* Must be CONFIG_64BIT*/
-       task_size = test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE;
-#endif
-
-       if (len > task_size)
+       if (len > TASK_SIZE)
                return -ENOMEM;
 
        if (flags & MAP_FIXED) {
-               /* Even MAP_FIXED mappings must reside within task_size.  */
-               if (task_size - len < addr)
+               /* Even MAP_FIXED mappings must reside within TASK_SIZE.  */
+               if (TASK_SIZE - len < addr)
                        return -EINVAL;
 
                /*
@@ -114,7 +107,7 @@ unsigned long arch_get_unmapped_area(str
                else
                        addr = PAGE_ALIGN(addr);
                vmm = find_vma(current->mm, addr);
-               if (task_size - len >= addr &&
+               if (TASK_SIZE - len >= addr &&
                    (!vmm || addr + len <= vmm->vm_start))
                        return addr;
        }
@@ -126,7 +119,7 @@ unsigned long arch_get_unmapped_area(str
 
        for (vmm = find_vma(current->mm, addr); ; vmm = vmm->vm_next) {
                /* At this point:  (!vmm || addr < vmm->vm_end). */
-               if (task_size - len < addr)
+               if (TASK_SIZE - len < addr)
                        return -ENOMEM;
                if (!vmm || addr + len <= vmm->vm_start)
                        return addr;

<Prev in Thread] Current Thread [Next in Thread>