1. 17 2月, 2013 1 次提交
    • J
      openrisc: update DTLB-miss handler last · 8668480e
      Jonas Bonn 提交于
      The self-modifying code that updates the TLB handler at start-up has
      a subtle ordering requirement:  the DTLB handler must be the last thing
      changed.
      
      What I was seeing was the following:
      
      i)   The DTLB handler was updated
      ii)  The following printk caused a TLB miss and the look-up resulted
           in the page containing itlb_vector (0xc0000a00) being bounced from
           the TLB.
      iii) The subsequent access to itlb_vector caused a TLB miss and reload
           of the page containing itlb_vector from the page tables.
      iv)  But this reload of the page in iii) was being done by the "new"
           DTLB-miss handler which resulted (correctly) in the page flags being
           set to read-only; the subsequent write-access to itlb_vector thus
           resulted in a page (access) fault.
      
      This is easily remedied if we ensure that the boot-time DTLB-miss handler
      continues running until the very last bit of self-modifying code has been
      executed.  This patch should ensure that the very last thing updated is the
      DTLB-handler itself.
      Signed-off-by: NJonas Bonn <jonas@southpole.se>
      Acked-by: NJulius Baxter <juliusbaxter@gmail.com>
      Tested-by: NSebastian Macke <sebastian@macke.de>
      8668480e
  2. 29 3月, 2012 1 次提交
  3. 17 2月, 2012 1 次提交
  4. 23 7月, 2011 1 次提交