• Nathan Lynch's avatar
    ARM: 8198/1: make kuser helpers depend on MMU · a7001a90
    Nathan Lynch authored
    commit 08b964ff upstream.
    
    The kuser helpers page is not set up on non-MMU systems, so it does
    not make sense to allow CONFIG_KUSER_HELPERS to be enabled when
    CONFIG_MMU=n.  Allowing it to be set on !MMU results in an oops in
    set_tls (used in execve and the arm_syscall trap handler):
    
    Unhandled exception: IPSR = 00000005 LR = fffffff1
    CPU: 0 PID: 1 Comm: swapper Not tainted 3.18.0-rc1-00041-ga30465a #216
    task: 8b838000 ti: 8b82a000 task.ti: 8b82a000
    PC is at flush_thread+0x32/0x40
    LR is at flush_thread+0x21/0x40
    pc : [<8f00157a>]    lr : [<8f001569>]    psr: 4100000b
    sp : 8b82be20  ip : 00000000  fp : 8b83c000
    r10: 00000001  r9 : 88018c84  r8 : 8bb85000
    r7 : 8b838000  r6 : 00000000  r5 : 8bb77400  r4 : 8b82a000
    r3 : ffff0ff0  r2 : 8b82a000  r1 : 00000000  r0 : 88020354
    xPSR: 4100000b
    CPU: 0 PID: 1 Comm: swapper Not tainted 3.18.0-rc1-00041-ga30465a #216
    [<8f002bc1>] (unwind_backtrace) from [<8f002033>] (show_stack+0xb/0xc)
    [<8f002033>] (show_stack) from [<8f00265b>] (__invalid_entry+0x4b/0x4c)
    
    As best I can tell this issue existed for the set_tls ARM syscall
    before commit fbfb872f "ARM: 8148/1: flush TLS and thumbee
    register state during exec" consolidated the TLS manipulation code
    into the set_tls helper function, but now that we're using it to flush
    register state during execve, !MMU users encounter the oops at the
    first exec.
    
    Prevent CONFIG_MMU=n configurations from enabling
    CONFIG_KUSER_HELPERS.
    
    Fixes: fbfb872f (ARM: 8148/1: flush TLS and thumbee register state during exec)
    Signed-off-by: default avatarNathan Lynch <nathan_lynch@mentor.com>
    Reported-by: default avatarStefan Agner <stefan@agner.ch>
    Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    a7001a90
Kconfig 26.9 KB