• Rob Gardner's avatar
    sparc64: Handle additional cases of no fault loads · b6fe1089
    Rob Gardner authored
    Load instructions using ASI_PNF or other no-fault ASIs should not
    cause a SIGSEGV or SIGBUS.
    
    A garden variety unmapped address follows the TSB miss path, and when
    no valid mapping is found in the process page tables, the miss handler
    checks to see if the access was via a no-fault ASI.  It then fixes up
    the target register with a zero, and skips the no-fault load
    instruction.
    
    But different paths are taken for data access exceptions and alignment
    traps, and these do not respect the no-fault ASI. We add checks in
    these paths for the no-fault ASI, and fix up the target register and
    TPC just like in the TSB miss case.
    Signed-off-by: default avatarRob Gardner <rob.gardner@oracle.com>
    Acked-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    b6fe1089
traps_64.c 81.8 KB