• Jeffrey Lee's avatar
    Tweak data abort handler to try and avoid recusrive aborts confusing AMBControl · 8df5d3f5
    Jeffrey Lee authored
    Detail:
      s/VMSAv6 - The code to detect aborting MVA ops now only runs if the aborting instruction wasn't located in application space.
      This is a workaround for an issue where:
      (a) The aborting instruction is in application space
      (b) The aborting instruction is attempting to access memory located in the same page as itself
      (c) That page is not mapped in (despite the fact that code is being executed from it)
      Originally attempting to load the aborting the instruction would have triggered another abort, causing AMBControl to map in the page and resume the first abort handler. The first abort handler would then have determined that it wasn't an MVA op and called AMBControl, only to be told by AMBControl that it wasn't a lazy fixup abort (even though it really was), thus triggering the abort environment handler.
      By ignoring instructions located in application space the second abort is avoided, allowing AMBControl to correctly process the abort.
    Admin:
      Tested on rev A2 BB-xM.
      Fixes issue with DPScan crashing - http://www.freelists.org/post/davidpilling/DPScan-ARMini-crash
      Still need to determine how the ICache is able to become so out of sync with the DCache & page tables.
    
    
    Version 5.35, 4.79.2.98.2.40. Tagged as 'Kernel-5_35-4_79_2_98_2_40'
    8df5d3f5
VersionNum 859 Bytes