1. 14 8月, 2014 2 次提交
    • M
      xtensa: fix TLBTEMP_BASE_2 region handling in fast_second_level_miss · 7128039f
      Max Filippov 提交于
      Current definition of TLBTEMP_BASE_2 is always 32K above the
      TLBTEMP_BASE_1, whereas fast_second_level_miss handler for the TLBTEMP
      region analyzes virtual address bit (PAGE_SHIFT + DCACHE_ALIAS_ORDER)
      to determine TLBTEMP region where the fault happened. The size of the
      TLBTEMP region is also checked incorrectly: not 64K, but twice data
      cache way size (whicht may as well be less than the instruction cache
      way size).
      
      Fix TLBTEMP_BASE_2 to be TLBTEMP_BASE_1 + data cache way size.
      Provide TLBTEMP_SIZE that is a greater of doubled data cache way size or
      the instruction cache way size, and use it to determine if the second
      level TLB miss occured in the TLBTEMP region.
      
      Practical occurence of page faults in the TLBTEMP area is extremely
      rare, this code can be tested by deletion of all w[di]tlb instructions
      in the tlbtemp_mapping region.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      7128039f
    • M
      xtensa: fix access to THREAD_RA/THREAD_SP/THREAD_DS · 52247123
      Max Filippov 提交于
      With SMP and a lot of debug options enabled task_struct::thread gets out
      of reach of s32i/l32i instructions with base pointing at task_struct,
      breaking build with the following messages:
      
        arch/xtensa/kernel/entry.S: Assembler messages:
        arch/xtensa/kernel/entry.S:1002: Error: operand 3 of 'l32i.n' has invalid value '1048'
        arch/xtensa/kernel/entry.S:1831: Error: operand 3 of 's32i.n' has invalid value '1040'
        arch/xtensa/kernel/entry.S:1832: Error: operand 3 of 's32i.n' has invalid value '1044'
      
      Change base to point to task_struct::thread in such cases.
      Don't use a10 in _switch_to to save/restore prev pointer as a2 is not
      clobbered.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      52247123
  2. 29 1月, 2014 1 次提交
    • C
      xtensa: fix fast_syscall_spill_registers · 6b5a1f74
      Chris Zankel 提交于
      The original implementation could clobber registers under certain conditions.
      
      The Xtensa processor architecture uses windowed registers and the original
      implementation was using a4 as a temporary register, which under certain
      conditions could be register a0 of the oldest window frame, and didn't always
      restore the content correctly.
      
      By moving the _spill_registers routine inside the fast system call, it frees
      up one more register (the return address is not required anymore) for the
      spill routine.
      Signed-off-by: NChris Zankel <chris@zankel.net>
      6b5a1f74
  3. 26 1月, 2014 2 次提交
  4. 16 10月, 2013 1 次提交
  5. 07 9月, 2013 4 次提交
  6. 08 7月, 2013 1 次提交
  7. 21 5月, 2013 1 次提交
  8. 09 5月, 2013 2 次提交
  9. 24 2月, 2013 3 次提交
  10. 19 12月, 2012 3 次提交
  11. 26 10月, 2012 2 次提交
  12. 20 10月, 2012 1 次提交
  13. 16 10月, 2012 1 次提交
  14. 22 5月, 2012 2 次提交
  15. 31 3月, 2011 1 次提交
  16. 02 5月, 2010 1 次提交
  17. 09 2月, 2010 1 次提交
  18. 03 4月, 2009 1 次提交
  19. 07 11月, 2008 1 次提交
  20. 14 2月, 2008 5 次提交
  21. 28 8月, 2007 2 次提交
    • C
      [XTENSA] Add support for cache-aliasing · 6656920b
      Chris Zankel 提交于
      Add support for processors that have cache-aliasing issues, such as
      the Stretch S5000 processor. Cache-aliasing means that the size of
      the cache (for one way) is larger than the page size, thus, a page
      can end up in several places in cache depending on the virtual to
      physical translation. The method used here is to map a user page
      temporarily through the auto-refill way 0 and of of the DTLB.
      We probably will want to revisit this issue and use a better
      approach with kmap/kunmap.
      Signed-off-by: NChris Zankel <chris@zankel.net>
      6656920b
    • C
      [XTENSA] Add support for executable/non-executable feature in the mmu · 01858d1b
      Chris Zankel 提交于
      Newer processor versions starting with Xtensa6/LX2 support an 'executable'
      bit for memory pages. This bit replaces the 'valid' bit, so it must be
      always set to one for older processor versions. To mark a page invalid, we now
      set the cache-attributes to b11, which is backward compatible.
      Signed-off-by: NChris Zankel <chris@zankel.net>
      01858d1b
  22. 01 6月, 2007 1 次提交
    • C
      [XTENSA] Remove non-rt signal handling · 29c4dfd9
      Chris Zankel 提交于
      The non-rt signal handling was never really used, so we don't break
      anything. This patch also cleans up the signal stack-frame to make
      it independent from the processor configuration. It also improves
      the method used for controlling single-stepping. We now save and
      restore the 'icountlevel' register that controls single stepping
      and set or clear the saved state to enable or disable it.
      Signed-off-by: NChris Zankel <chris@zankel.net>
      29c4dfd9
  23. 11 12月, 2006 1 次提交