• Thomas Gleixner's avatar
    x86/entry/32: Remove the 0/-1 distinction from exception entries · e441a2ae
    Thomas Gleixner authored
    Nothing cares about the -1 "mark as interrupt" in the errorcode of
    exception entries. It's only used to fill the error code when a signal is
    delivered, but this is already inconsistent vs. 64 bit as there all
    exceptions which do not have an error code set it to 0. So if 32 bit
    applications would care about this, then they would have noticed more than
    a decade ago.
    
    Just use 0 for all excpetions which do not have an errorcode consistently.
    
    This does neither break /proc/$PID/syscall because this interface examines
    the error code / syscall number which is on the stack and that is set to -1
    (no syscall) in common_exception unconditionally for all exceptions. The
    push in the entry stub is just there to fill the hardware error code slot
    on the stack for consistency of the stack layout.
    
    A transient observation of 0 is possible, but that's true for the other
    exceptions which use 0 already as well and that interface is an unreliable
    snapshot of dubious correctness anyway.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Reviewed-by: default avatarAlexandre Chartre <alexandre.chartre@oracle.com>
    Link: https://lkml.kernel.org/r/87mu94m7ky.fsf@nanos.tec.linutronix.de
    e441a2ae
entry_32.S 42.7 KB