1. 19 2月, 2011 1 次提交
  2. 25 1月, 2011 1 次提交
    • R
      ARM: realview,vexpress: fix section mismatch warning for pen_release · ec15038f
      Russell King 提交于
      Fix two section mismatch warnings in the platform SMP bringup code for
      Realview and Versatile Express:
      
      WARNING: arch/arm/mach-realview/built-in.o(.text+0x8ac): Section mismatch in reference from the function write_pen_release() to the variable .cpuinit.data:pen_release
      The function write_pen_release() references
      the variable __cpuinitdata pen_release.
      This is often because write_pen_release lacks a __cpuinitdata
      annotation or the annotation of pen_release is wrong.
      
      WARNING: arch/arm/mach-vexpress/built-in.o(.text+0x7b4): Section mismatch in reference from the function write_pen_release() to the variable .cpuinit.data:pen_release
      The function write_pen_release() references
      the variable __cpuinitdata pen_release.
      This is often because write_pen_release lacks a __cpuinitdata
      annotation or the annotation of pen_release is wrong.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ec15038f
  3. 20 12月, 2010 4 次提交
    • R
      ARM: Fix subtle race in CPU pen_release hotplug code · 3705ff6d
      Russell King 提交于
      There is a subtle race in the CPU hotplug code, where a CPU which has
      been offlined can online itself before being requested, which results
      in things going astray on the next online/offline cycle.
      
      What happens in the normal online/offline/online cycle is:
      
      	CPU0			CPU3
      	requests boot of CPU3
      	pen_release = 3
      	flush cache line
      				checks pen_release, reads 3
      				starts boot
      				pen_release = -1
      	... requests CPU3 offline ...
      				... dies ...
      				checks pen_release, reads -1
      	requests boot of CPU3
      	pen_release = 3
      	flush cache line
      				checks pen_release, reads 3
      				starts boot
      				pen_release = -1
      
      However, as the write of -1 of pen_release is not fully flushed back to
      memory, and the checking of pen_release is done with caches disabled,
      this allows CPU3 the opportunity to read the old value of pen_release:
      
      	CPU0			CPU3
      	requests boot of CPU3
      	pen_release = 3
      	flush cache line
      				checks pen_release, reads 3
      				starts boot
      				pen_release = -1
      	... requests CPU3 offline ...
      				... dies ...
      				checks pen_release, reads 3
      				starts boot
      				pen_release = -1
      	requests boot of CPU3
      	pen_release = 3
      	flush cache line
      
      Fix this by grouping the write of pen_release along with its cache line
      flushing code to ensure that any update to pen_release is always pushed
      out to physical memory.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      3705ff6d
    • R
      ARM: SMP: consolidate trace_hardirqs_off() into common SMP code · 2c0136db
      Russell King 提交于
      All platforms call trace_hardirqs_off() in their secondary startup code,
      so move this into the core SMP code - it doesn't need to be in the
      per-platform code.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      2c0136db
    • R
      ARM: SMP: consolidate the common parts of smp_prepare_cpus() · 05c74a6c
      Russell King 提交于
      There is a certain amount of smp_prepare_cpus() which doesn't belong
      in the platform support code - that is, code which is invariant to the
      SMP implementation.  Move this code into arch/arm/kernel/smp.c, and
      add a platform_ prefix to the original function.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      05c74a6c
    • R
      ARM: SMP: Clean up ncores sanity checks · 8975b6c0
      Russell King 提交于
      scu_get_core_count() never returns zero cores, so we don't need to
      check and correct if ncores is zero.
      
      Tegra was missing the check against NR_CPUS, leading to a potential
      bitfield overflow if this becomes the case.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      8975b6c0
  4. 15 12月, 2010 1 次提交
  5. 03 12月, 2010 1 次提交
  6. 02 5月, 2010 1 次提交
  7. 05 11月, 2009 1 次提交
  8. 24 7月, 2009 1 次提交
  9. 30 5月, 2009 1 次提交
  10. 28 5月, 2009 1 次提交
  11. 18 5月, 2009 4 次提交
  12. 17 5月, 2009 2 次提交
  13. 09 1月, 2009 1 次提交
  14. 01 12月, 2008 3 次提交
  15. 06 9月, 2008 1 次提交
  16. 07 8月, 2008 2 次提交
  17. 03 7月, 2008 1 次提交
  18. 01 7月, 2008 1 次提交
  19. 19 4月, 2008 2 次提交
  20. 05 2月, 2008 3 次提交
  21. 16 2月, 2007 1 次提交
  22. 15 2月, 2007 1 次提交
  23. 16 2月, 2006 1 次提交
    • R
      [ARM] Fix SMP initialisation oops · 7bbb7940
      Russell King 提交于
      A change to the SMP initialisation caused the following oops:
      
       CPU1: Booted secondary processor
       CPU1: D VIPT write-back cache
       CPU1: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
       CPU1: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
       <7>Calibrating delay loop... 83.14 BogoMIPS (lpj=415744)
       <1>Unable to handle kernel NULL pointer dereference at virtual address 0000001c
       ...
       PC is at enqueue_task+0x1c/0x64
       LR is at activate_task+0xcc/0xe4
      
      SMP initialisation now requires cpu_possible_map to be initialised in
      setup_arch().  Move this from smp_prepare_cpus() to smp_init_cpus()
      and call it from our setup_arch() if CONFIG_SMP is enabled.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      7bbb7940
  24. 16 11月, 2005 1 次提交
  25. 09 11月, 2005 1 次提交
  26. 08 11月, 2005 2 次提交