1. 25 8月, 2012 1 次提交
  2. 10 7月, 2012 1 次提交
    • W
      ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process · 575320d6
      Will Deacon 提交于
      This patch introduces a new Kconfig option which, when enabled, causes
      the kernel to write the PID of the current task into the PROCID field
      of the CONTEXTIDR on context switch. This is useful when analysing
      hardware trace, since writes to this register can be configured to emit
      an event into the trace stream.
      
      The thread notifier for writing the PID is deliberately kept separate
      from the ASID-writing code so that we can support newer processors using
      LPAE, where the ASID is stored in TTBR0. As such, the switch_mm code is
      updated to perform a read-modify-write sequence to ensure that we don't
      clobber the PID on CPUs using the classic 2-level page tables.
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      575320d6
  3. 17 4月, 2012 3 次提交
  4. 08 12月, 2011 1 次提交
  5. 13 9月, 2011 1 次提交
  6. 09 6月, 2011 2 次提交
    • R
      Revert "ARM: 6944/1: mm: allow ASID 0 to be allocated to tasks" · a0a54d37
      Russell King 提交于
      This reverts commit 45b95235.
      
      Will Deacon reports that:
      
       In 52af9c6c ("ARM: 6943/1: mm: use TTBR1 instead of reserved context ID")
       I updated the ASID rollover code to use only the kernel page tables
       whilst updating the ASID.
      
       Unfortunately, the code to restore the user page tables was part of a
       later patch which isn't yet in mainline, so this leaves the code
       quite broken.
      
      We're also in the process of eliminating __ARCH_WANT_INTERRUPTS_ON_CTXSW
      from ARM, so lets revert these until we can properly sort out what we're
      doing with the context switching.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      a0a54d37
    • R
      Revert "ARM: 6943/1: mm: use TTBR1 instead of reserved context ID" · 07989b7a
      Russell King 提交于
      This reverts commit 52af9c6c.
      
      Will Deacon reports that:
      
       In 52af9c6c ("ARM: 6943/1: mm: use TTBR1 instead of reserved context ID")
       I updated the ASID rollover code to use only the kernel page tables
       whilst updating the ASID.
      
       Unfortunately, the code to restore the user page tables was part of a
       later patch which isn't yet in mainline, so this leaves the code
       quite broken.
      
      We're also in the process of eliminating __ARCH_WANT_INTERRUPTS_ON_CTXSW
      from ARM, so lets revert these until we can properly sort out what we're
      doing with the ARM context switching.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      07989b7a
  7. 26 5月, 2011 2 次提交
  8. 16 2月, 2010 1 次提交
    • C
      ARM: 5905/1: ARM: Global ASID allocation on SMP · 11805bcf
      Catalin Marinas 提交于
      The current ASID allocation algorithm doesn't ensure the notification
      of the other CPUs when the ASID rolls over. This may lead to two
      processes using the same ASID (but different generation) or multiple
      threads of the same process using different ASIDs.
      
      This patch adds the broadcasting of the ASID rollover event to the
      other CPUs. To avoid a race on multiple CPUs modifying "cpu_last_asid"
      during the handling of the broadcast, the ASID numbering now starts at
      "smp_processor_id() + 1". At rollover, the cpu_last_asid will be set
      to NR_CPUS.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      11805bcf
  9. 30 10月, 2009 1 次提交
    • R
      ARM: Fix errata 411920 workarounds · df71dfd4
      Russell King 提交于
      Errata 411920 indicates that any "invalidate entire instruction cache"
      operation can fail if the right conditions are present.  This is not
      limited just to those operations in flush.c, but elsewhere.  Place the
      workaround in the already existing __flush_icache_all() function
      instead.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      df71dfd4
  10. 24 9月, 2009 1 次提交
  11. 09 5月, 2007 2 次提交
    • C
      [ARM] armv7: add support for asid-tagged VIVT I-cache · 065cf519
      Catalin Marinas 提交于
      ARMv7 can have VIPT, PIPT or ASID-tagged VIVT I-cache. This patch
      adds the necessary invalidation of the I-cache when the ASID numbers
      are re-used.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      065cf519
    • R
      [ARM] Fix ASID version switch · 8678c1f0
      Russell King 提交于
      Close a hole in the ASID version switch, particularly the following
      scenario:
      
      CPU0 MM PID			CPU1 MM PID
      	idle
      				  A	pid(A)
      				  A	idle(lazy tlb)
      		* new asid version triggered by B *
        B	pid(B)
        A	pid(A)
      		* MM A gets new asid version *
        A	idle(lazy tlb)
      				  A	pid(A)
      		* CPU1 doesn't see the new ASID *
      
      The result is that CPU1 continues running with the hardware set
      for the original (stale) ASID value, but mm->context.id contains
      the new ASID value.  The result is that the next MM fault on CPU1
      updates the page table entries, but flush_tlb_page() fails due to
      wrong ASID.
      
      There is a related case with a threaded application is allocated
      a new ASID on one CPU while another of its threads is running on
      some different CPU.  This scenario is not fixed by this commit.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      8678c1f0
  12. 08 2月, 2007 1 次提交
  13. 20 9月, 2006 1 次提交
  14. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4