• Wang Kefeng's avatar
    ARM: 9131/1: mm: Fix PXN process with LPAE feature · abc25bbc
    Wang Kefeng authored
    When user code execution with privilege mode, it will lead to
    infinite loop in the page fault handler if ARM_LPAE enabled,
    
    The issue could be reproduced with
      "echo EXEC_USERSPACE > /sys/kernel/debug/provoke-crash/DIRECT"
    
    As Permission fault shows in ARM spec,
      IFSR format when using the Short-descriptor translation table format
        Permission fault:       01101 First level      01111 Second level
      IFSR format when using the Long-descriptor translation table format
        Permission fault:       0011LL LL bits indicate levelb.
    
    Add is_permission_fault() function to check permission fault and die
    if permission fault occurred under instruction fault in do_page_fault().
    
    Fixes: 1d4d3715 ("ARM: 8235/1: Support for the PXN CPU feature on ARMv7")
    Signed-off-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
    Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
    abc25bbc
fault.c 14.2 KB