• Paul Mundt's avatar
    sh: Fix up restorer in debug_trap exception return path. · 336f1d32
    Paul Mundt authored
    There are a few different types of debug trap exceptions, though now
    that they are all going through a special jump table, the restorer needs
    to be unified as well.
    
    Presently this is falling through the ret_from_fork path, which more or
    less does the right thing on SH-3/4 whilst being completely unsuitable on
    MMU-less targets.
    
    Ultimately what we want here is a branch through the platform's
    restore_all directly, without worrying about the retval being clobbered.
    We can accomplish that through a branch to __restore_all directly, so
    switch it so we come back from the jump table and branch to the restorer.
    
    This fixes up a recursion in the nommu WARN_ON() path, as well as some
    other userspace nastiness where said recursion caused serious stack
    corruption.
    Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
    336f1d32
entry-common.S 8.08 KB