• Jeffrey Lee's avatar
    Clear the exclusive monitor when returning to pre-empted code · d10d2336
    Jeffrey Lee authored
      s/Kernel - Add macro for CLREX, which uses a dummy STREX on basic ARMv6 machines. Clear the exclusive monitor after issuing transient callbacks, to cope with callbacks being triggered on exit from IRQ
      s/ArthurSWIs, s/HAL, s/NewIRQs - Clear the exclusive monitor on exit from IRQ handlers & default FIQ handler
      s/VMSAv6 - Clear the exclusive monitor on entry to the data abort pre-veneer
      Tested on Raspberry Pi
      Non-transient callback handlers, custom abort handlers, FIQ handlers, and anything else which returns directly to interrupted user code is responsible for issuing its own CLREX if the code has done something that could have left the local monitor in the exclusive state (e.g. calling a SWI counts towards this, as there's no guarantee the monitor will be open on exit from the SWI)
    Version 5.35, Tagged as 'Kernel-5_35-4_79_2_327'
VersionNum 843 Bytes