• Chris Metcalf's avatar
    arch/tile: adopt prepare_exit_to_usermode() model from x86 · 583b24a2
    Chris Metcalf authored
    This change is a prerequisite change for TASK_ISOLATION but also
    stands on its own for readability and maintainability.  The existing
    tile do_work_pending() was called in a loop from assembly on
    the slow path; this change moves the loop into C code as well.
    For the x86 version see commit c5c46f59 ("x86/entry: Add new,
    comprehensible entry and exit handlers written in C").
    
    This change exposes a pre-existing bug on the older tilepro platform;
    the singlestep processing is done last, but on tilepro (unlike tilegx)
    we enable interrupts while doing that processing, so we could in
    theory miss a signal or other asynchronous event.  A future change
    could fix this by breaking the singlestep work into a "prepare"
    step done in the main loop, and a "trigger" step done after exiting
    the loop.  Since this change is intended as purely a restructuring
    change, we call out the bug explicitly now, but don't yet fix it.
    Signed-off-by: default avatarChris Metcalf <cmetcalf@ezchip.com>
    583b24a2
processor.h 10.8 KB