[Top] [All Lists]

Re: [PATCH 1/2] MIPS: Preliminary vdso.

To: David Daney <>
Subject: Re: [PATCH 1/2] MIPS: Preliminary vdso.
From: Shane McDonald <>
Date: Tue, 21 Apr 2009 23:24:07 -0600
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=sr5DyaUB8M9Lgf7rihRoqyNb7m/vciMMYFfHq6v60KI=; b=vuvaGYzVoddA2nucSvzVdeNOHJT4305N2QUk0He6Q04AeKwucYGzjmMbNVrPsmOK15 YQSRLSNQ5fTj4Ja96kk8CprtzIRYmuOc6/aYrw1xBz7OWeQDhKSrQ9esIP3z7SL368T/ V0GJ6AJ+LVqRvteWpSts5ty/g6tQJJtxb+FsU=
Domainkey-signature: a=rsa-sha1; c=nofws;; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=P+FIg4S8TA9NdEW0VDwHbNP3AWplKakwaf0i4VFADHUMUcpePtTh4w6rqvz2+/4/Dn Tc6AwUP/8Aj89Riz3LD9P5WF9eoHaV3Y3SNhWxJg3w2pP0KdLYzE8LC61DCthgTczqTt vrbTnoGy6cvD8Vjq6qqncrZzw+Y2VifLLT9Lw=
In-reply-to: <>
Original-recipient: rfc822;
References: <> <>
Hello David:

On Tue, Apr 21, 2009 at 3:33 PM, David Daney <> wrote:
This is a preliminary patch to add a vdso to all user processes.
Still missing are ELF headers and .eh_frame information.  But it is
enough to allow us to move signal trampolines off of the stack.

We allocate a single page (the vdso) and write all possible signal
trampolines into it.  The stack is moved down by one page and the vdso
is mapped into this space.

This patch fails to compile for me with an RM7035C-based system (out of tree, sadly).  The error I see is:

  CC      arch/mips/kernel/syscall.o
arch/mips/kernel/syscall.c: In function 'arch_get_unmapped_area':
arch/mips/kernel/syscall.c:80: error: 'TASK_SIZE32' undeclared (first use in this function)
arch/mips/kernel/syscall.c:80: error: (Each undeclared identifier is reported only once
arch/mips/kernel/syscall.c:80: error: for each function it appears in.)
make[1]: *** [arch/mips/kernel/syscall.o] Error 1

I believe it is related to the following portion of the patch:

diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c
index 955c5f0..491e5be 100644
--- a/arch/mips/kernel/syscall.c
+++ b/arch/mips/kernel/syscall.c
@@ -77,7 +77,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
       int do_color_align;
       unsigned long task_size;

-       task_size = STACK_TOP;
+       task_size = test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE;

       if (len > task_size)
               return -ENOMEM;

On my system, CONFIG_32BIT is defined and CONFIG_64BIT is not -- looking at arch/mips/include/asm/processor.h, it appears that TASK_SIZE32 is only defined when CONFIG_64BIT is defined.

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