1. 18 Mar, 2021 3 commits
    • Madhukar Pappireddy's avatar
      Bug fix in tspd interrupt handling when TSP_NS_INTR_ASYNC_PREEMPT is enabled · 51bb1d73
      Madhukar Pappireddy authored
      
      
      Typically, interrupts for a specific security state get handled in the
      same security execption level if the execution is in the same security
      state. For example, if a non-secure interrupt gets fired when CPU is
      executing in NS-EL2 it gets handled in the non-secure world.
      
      However, interrupts belonging to the opposite security state typically
      demand a world(context) switch. This is inline with the security
      principle which states a secure interrupt has to be handled in the
      secure world. Hence, the TSPD in EL3 expects the context(handle) for a
      secure interrupt to be non-secure and vice versa.
      
      The function "tspd_sel1_interrupt_handler" is the handler registered
      for S-EL1 interrupts by the TSPD. Based on the above assumption, it
      provides an assertion to validate if the interrupt originated from
      non-secure world and upon success arranges entry into the TSP at
      'tsp_sel1_intr_entry' for handling the interrupt.
      
      However, a race condition between non-secure and secure interrupts can
      lead to a scenario where the above assumptions do not hold true and
      further leading to following assert fail.
      
      This patch fixes the bug which causes this assert fail:
      
      	ASSERT: services/spd/tspd/tspd_main.c:105
      	BACKTRACE: START: assert
      	0: EL3: 0x400c128
      	1: EL3: 0x400faf8
      	2: EL3: 0x40099a4
      	3: EL3: 0x4010d54
      	BACKTRACE: END: assert
      
      Change-Id: I359d30fb5dbb1429a4a3c3fff37fdc64c07e9414
      Signed-off-by: default avatarMadhukar Pappireddy <madhukar.pappireddy@arm.com>
      51bb1d73
    • Madhukar Pappireddy's avatar
    • Madhukar Pappireddy's avatar
  2. 17 Mar, 2021 2 commits
  3. 16 Mar, 2021 1 commit
  4. 15 Mar, 2021 4 commits
  5. 12 Mar, 2021 1 commit
  6. 10 Mar, 2021 4 commits
  7. 09 Mar, 2021 2 commits
  8. 08 Mar, 2021 3 commits
  9. 05 Mar, 2021 3 commits
  10. 04 Mar, 2021 2 commits
  11. 03 Mar, 2021 9 commits
  12. 02 Mar, 2021 6 commits