• Nicolas Pitre's avatar
    ARM: add a vma entry for the user accessible vector page · ec706dab
    Nicolas Pitre authored
    The kernel makes the high vector page visible to user space. This page
    contains (amongst others) small code segments that can be executed in
    user space.  Make this page visible through ptrace and /proc/<pid>/mem
    in order to let gdb perform code parsing needed for proper unwinding.
    
    For example, the ERESTART_RESTARTBLOCK handler actually has a stack
    frame -- it returns to a PC value stored on the user's stack.   To
    unwind after a "sleep" system call was interrupted twice, GDB would
    have to recognize this situation and understand that stack frame
    layout -- which it currently cannot do.
    
    We could fix this by hard-coding addresses in the vector page range into
    GDB, but that isn't really portable as not all of those addresses are
    guaranteed to remain stable across kernel releases.  And having the gdb
    process make an exception for this page and get  content from its own
    address space for it looks strange, and it is not future proof either.
    
    Being located above PAGE_OFFSET, this vma cannot be deleted by
    user space code.
    Signed-off-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
    ec706dab
process.c 11.1 KB