lkml.org 
[lkml]   [2009]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 8/8] powerpc: Fix PCL vdso detection
    PCL uses arch_vma_name() to detect a vdso region which in turn uses
    current->mm->context.vdso_base. We need to initialise this before doing
    the mmap or else we fail to detect the vdso.

    Signed-off-by: Anton Blanchard <anton@samba.org>
    ---

    Index: linux-2.6-tip/arch/powerpc/kernel/vdso.c
    ===================================================================
    --- linux-2.6-tip.orig/arch/powerpc/kernel/vdso.c 2009-06-30 09:57:23.000000000 +1000
    +++ linux-2.6-tip/arch/powerpc/kernel/vdso.c 2009-06-30 09:58:37.000000000 +1000
    @@ -235,6 +235,13 @@
    }

    /*
    + * Put vDSO base into mm struct. We need to do this before calling
    + * install_special_mapping or the perf counter mmap tracking code
    + * will fail to recognise it as a vDSO (since arch_vma_name fails).
    + */
    + current->mm->context.vdso_base = vdso_base;
    +
    + /*
    * our vma flags don't have VM_WRITE so by default, the process isn't
    * allowed to write those pages.
    * gdb can break that with ptrace interface, and thus trigger COW on
    @@ -254,11 +261,10 @@
    VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC|
    VM_ALWAYSDUMP,
    vdso_pagelist);
    - if (rc)
    + if (rc) {
    + current->mm->context.vdso_base = 0;
    goto fail_mmapsem;
    -
    - /* Put vDSO base into mm struct */
    - current->mm->context.vdso_base = vdso_base;
    + }

    up_write(&mm->mmap_sem);
    return 0;
    --



    \
     
     \ /
      Last update: 2009-07-01 01:21    [W:4.141 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site