Subject: [PATCH v7 7/9] ARM: add vdso user-space code

From: [email-masked] (Nathan Lynch)
Date: Sun, 29 Jun 2014 10:48:13 -0500

On 06/29/2014 03:34 AM, Russell King - ARM Linux wrote:
> On Sat, Jun 28, 2014 at 04:35:12PM -0500, Nathan Lynch wrote:
>> That's consistent with my results on iMX6.  The reported 1.00x "speedup"
>> for clock-gettime-monotonic etc indicates the VDSO is falling back to
>> syscall.
>>
>> Thanks for testing.
> 
> Here's another issue which cropped up when I ran this patch set through
> the autobuilder last night - allnoconfig's now fail with:
> 
> mm/memory.c: In function 'gate_vma_init':
> mm/memory.c:3410:22: error: 'FIXADDR_USER_START' undeclared (first use in this function)
> mm/memory.c:3411:20: error: 'FIXADDR_USER_END' undeclared (first use in this function)
> mm/memory.c: In function 'in_gate_area_no_mm':
> mm/memory.c:3432:15: error: 'FIXADDR_USER_START' undeclared (first use in this function)
> mm/memory.c:3432:46: error: 'FIXADDR_USER_END' undeclared (first use in this function)
> make[2]: *** [mm/memory.o] Error 1

arch/arm/include/page.h:
#ifdef CONFIG_KUSER_HELPERS
#define __HAVE_ARCH_GATE_AREA 1
#endif

mm/memory.c:
#if !defined(__HAVE_ARCH_GATE_AREA)

#if defined(AT_SYSINFO_EHDR)
static struct vm_area_struct gate_vma;

static int __init gate_vma_init(void)
{
	gate_vma.vm_mm = NULL;
	gate_vma.vm_start = FIXADDR_USER_START;
	gate_vma.vm_end = FIXADDR_USER_END;
...

The vdso patches add an ARM definition for AT_SYSINFO_EHDR.  So when
CONFIG_KUSER_HELPERS=n, this code is pulled in now...

Not sure what the fix would be right now.  I don't understand why there
is this relationship between AT_SYSINFO_EHDR and gate vma code.