• V
    s390/vdso: avoid 64-bit vdso mapping for compat tasks · 84bfa034
    Vasily Gorbik 提交于
    [ Upstream commit d1befa65823e9c6d013883b8a41d081ec338c489 ]
    
    vdso_fault used is_compat_task function (on s390 it tests "current"
    thread_info flags) to distinguish compat tasks and map 31-bit vdso
    pages. But "current" task might not correspond to mm context.
    
    When 31-bit compat inferior is executed under gdb, gdb does
    PTRACE_PEEKTEXT on vdso page, causing vdso_fault with "current" being
    64-bit gdb process. So, 31-bit inferior ends up with 64-bit vdso mapped.
    
    To avoid this problem a new compat_mm flag has been introduced into
    mm context. This flag is used in vdso_fault and vdso_mremap instead
    of is_compat_task.
    Signed-off-by: NVasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: NSasha Levin <sashal@kernel.org>
    84bfa034
mmu_context.h 3.9 KB