1. 25 9月, 2012 1 次提交
  2. 16 4月, 2012 1 次提交
  3. 27 2月, 2012 1 次提交
  4. 23 1月, 2012 2 次提交
  5. 24 12月, 2011 1 次提交
    • D
      ARM: 7197/1: errata: Remove SMP dependency for erratum 751472 · ba90c516
      Dave Martin 提交于
      Activation conditions for a workaround should not be encoded in the
      workaround's direct dependencies if this makes otherwise reasonable
      configuration choices impossible.
      
      This patches uses the SMP/UP patching facilities instead to compile
      out the workaround if the configuration means that it is definitely
      not needed.
      
      This means that configs for buggy silicon can simply select
      ARM_ERRATA_751472, without preventing a UP kernel from being built
      or duplicatiing knowledge about when to activate the workaround.
      This seems the correct way to do things, because the erratum is a
      property of the silicon, irrespective of what the kernel config
      happens to be.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ba90c516
  6. 11 12月, 2011 1 次提交
  7. 08 12月, 2011 2 次提交
  8. 06 12月, 2011 1 次提交
  9. 02 10月, 2011 1 次提交
  10. 21 9月, 2011 3 次提交
  11. 28 8月, 2011 3 次提交
  12. 22 7月, 2011 1 次提交
  13. 08 7月, 2011 4 次提交
  14. 07 7月, 2011 1 次提交
  15. 24 6月, 2011 2 次提交
  16. 09 6月, 2011 1 次提交
    • 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
  17. 26 5月, 2011 2 次提交
  18. 02 4月, 2011 1 次提交
  19. 31 3月, 2011 1 次提交
  20. 10 3月, 2011 1 次提交
  21. 23 2月, 2011 1 次提交
  22. 19 2月, 2011 1 次提交
  23. 14 1月, 2011 1 次提交
  24. 22 12月, 2010 3 次提交
  25. 30 11月, 2010 1 次提交
    • D
      ARM: 6501/1: Thumb-2: Correct data alignment for CONFIG_THUMB2_KERNEL in mm/proc-v7.S · 6323875d
      Dave Martin 提交于
      Directives such as .long and .word do not magically cause the
      assembler location counter to become aligned in gas.  As a result,
      using these directives in code sections can result in misaligned
      data words when building a Thumb-2 kernel (CONFIG_THUMB2_KERNEL).
      
      This is a Bad Thing, since the ABI permits the compiler to assume
      that fundamental types of word size or above are word- aligned when
      accessing them from C.  If the data is not really word-aligned,
      this can cause impaired performance and stray alignment faults in
      some circumstances.
      
      In general, the following rules should be applied when using data
      word declaration directives inside code sections:
      
          * .quad and .double:
               .align 3
      
          * .long, .word, .single, .float:
               .align (or .align 2)
      
          * .short:
              No explicit alignment required, since Thumb-2
              instructions are always 2 or 4 bytes in size.
              immediately after an instruction.
      
      In this specific case, we can achieve the desired alignment by
      forcing a 32-bit branch instruction using the W() macro, since the
      assembler location counter is already 32-bit aligned in this case.
      Reviewed-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6323875d
  26. 04 11月, 2010 2 次提交
    • L
      ARM: 6396/1: Add SWP/SWPB emulation for ARMv7 processors · 64d2dc38
      Leif Lindholm 提交于
      The SWP instruction was deprecated in the ARMv6 architecture,
      superseded by the LDREX/STREX family of instructions for
      load-linked/store-conditional operations. The ARMv7 multiprocessing
      extensions mandate that SWP/SWPB instructions are treated as undefined
      from reset, with the ability to enable them through the System Control
      Register SW bit.
      
      This patch adds the alternative solution to emulate the SWP and SWPB
      instructions using LDREX/STREX sequences, and log statistics to
      /proc/cpu/swp_emulation. To correctly deal with copy-on-write, it also
      modifies cpu_v7_set_pte_ext to change the mappings to priviliged RO when
      user RO.
      Signed-off-by: NLeif Lindholm <leif.lindholm@arm.com>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Acked-by: NKirill A. Shutemov <kirill@shutemov.name>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      64d2dc38
    • C
      ARM: 6384/1: Remove the domain switching on ARMv6k/v7 CPUs · 247055aa
      Catalin Marinas 提交于
      This patch removes the domain switching functionality via the set_fs and
      __switch_to functions on cores that have a TLS register.
      
      Currently, the ioremap and vmalloc areas share the same level 1 page
      tables and therefore have the same domain (DOMAIN_KERNEL). When the
      kernel domain is modified from Client to Manager (via the __set_fs or in
      the __switch_to function), the XN (eXecute Never) bit is overridden and
      newer CPUs can speculatively prefetch the ioremap'ed memory.
      
      Linux performs the kernel domain switching to allow user-specific
      functions (copy_to/from_user, get/put_user etc.) to access kernel
      memory. In order for these functions to work with the kernel domain set
      to Client, the patch modifies the LDRT/STRT and related instructions to
      the LDR/STR ones.
      
      The user pages access rights are also modified for kernel read-only
      access rather than read/write so that the copy-on-write mechanism still
      works. CPU_USE_DOMAINS gets disabled only if the hardware has a TLS register
      (CPU_32v6K is defined) since writing the TLS value to the high vectors page
      isn't possible.
      
      The user addresses passed to the kernel are checked by the access_ok()
      function so that they do not point to the kernel space.
      Tested-by: NAnton Vorontsov <cbouatmailru@gmail.com>
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      247055aa