• R
    ARM: fix a cockup in 48be69a0 (ARM: move signal handlers into a vdso-like page) · e0d40756
    Russell King 提交于
    Unfortunately, I never committed the fix to a nasty oops which can
    occur as a result of that commit:
    
    ------------[ cut here ]------------
    kernel BUG at /home/olof/work/batch/include/linux/mm.h:414!
    Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
    Modules linked in:
    CPU: 0 PID: 490 Comm: killall5 Not tainted 3.11.0-rc3-00288-gabe03080 #53
    task: e90acac0 ti: e9be8000 task.ti: e9be8000
    PC is at special_mapping_fault+0xa4/0xc4
    LR is at __do_fault+0x68/0x48c
    
    This doesn't show up unless you do quite a bit of testing; a simple
    boot test does not do this, so all my nightly tests were passing fine.
    
    The reason for this is that install_special_mapping() expects the
    page array to stick around, and as this was only inserting one page
    which was stored on the kernel stack, that's why this was blowing up.
    Reported-by: NOlof Johansson <olof@lixom.net>
    Tested-by: NOlof Johansson <olof@lixom.net>
    Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
    e0d40756
signal.c 17.3 KB