1. 16 2月, 2010 2 次提交
    • R
      ARM: vfp ptrace: no point flushing hw context for PTRACE_GETVFPREGS · ad187f95
      Russell King 提交于
      If we're only reading the VFP context via the ptrace call, there's
      no need to invalidate the hardware context - we only need to do that
      on PTRACE_SETVFPREGS.  This allows more efficient monitoring of a
      traced task.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ad187f95
    • R
      ARM: vfp: fix vfp_sync_state() · 54cb3dbb
      Russell King 提交于
      The more I look at vfp_sync_state(), the more I believe it's trying
      to do its job in a really obscure way.
      
      Essentially, last_VFP_context[] tracks who owns the state in the VFP
      hardware.  If last_VFP_context[] is the context for the thread which
      we're interested in, then the VFP hardware has context which is not
      saved in the software state - so we need to bring the software state
      up to date.
      
      If last_VFP_context[] is for some other thread, we really don't care
      what state the VFP hardware is in; it doesn't contain any information
      pertinent to the thread we're trying to deal with - so don't touch
      the hardware.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      54cb3dbb
  2. 02 2月, 2010 1 次提交
  3. 18 12月, 2009 1 次提交
  4. 14 12月, 2009 1 次提交
    • R
      ARM: VFP: fix vfp thread init bug and document vfp notifier entry conditions · 0d782dc4
      Russell King 提交于
      When the VFP notifier is called for flush_thread(), we may be
      preemptible, meaning we might migrate to another CPU, which means
      referencing the current CPU number without some form of locking is
      invalid, and can cause data corruption.
      
      For the most cases, this isn't a problem since atomic notifiers are run
      under rcu lock, which for most configurations results in preemption
      being disabled - except when the preemptable tree-based rcu
      implementation is selected.
      
      Let's make it safe anyway.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      0d782dc4
  5. 24 7月, 2009 2 次提交
  6. 30 5月, 2009 1 次提交
    • C
      Fix the VFP handling on the Feroceon CPU · 85d6943a
      Catalin Marinas 提交于
      This CPU generates synchronous VFP exceptions in a non-standard way -
      the FPEXC.EX bit set but without the FPSCR.IXE bit being set like in the
      VFP subarchitecture 1 or just the FPEXC.DEX bit like in VFP
      subarchitecture 2. The main problem is that the faulty instruction
      (which needs to be emulated in software) will be restarted several times
      (normally until a context switch disables the VFP). This patch ensures
      that the VFP exception is treated as synchronous.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Cc: Nicolas Pitre <nico@cam.org>
      85d6943a
  7. 02 4月, 2009 1 次提交
  8. 12 2月, 2009 2 次提交
  9. 19 12月, 2008 1 次提交
    • B
      [ARM] 5349/1: VFP: Add PM code to save and restore current VFP state · fc0b7a20
      Ben Dooks 提交于
      When CONFIG_PM is selected, the VFP code does not have any handler
      installed to deal with either saving the VFP state of the current
      task, nor does it do anything to try and restore the VFP after a
      resume.
      
      On resume, the VFP will have been reset and the co-processor access
      control registers are in an indeterminate state (very probably the
      CP10 and CP11 the VFP uses will have been disabled by the ARM core
      reset). When this happens, resume will break as soon as it tries to
      unfreeze the tasks and restart scheduling.
      
      Add a sys device to allow us to hook the suspend call to save the
      current thread state if the thread is using VFP and a resume hook
      which restores the CP10/CP11 access and ensures the VFP is disabled
      so that the lazy swapping will take place on next access.
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      fc0b7a20
  10. 06 11月, 2008 2 次提交
  11. 01 9月, 2008 1 次提交
  12. 26 6月, 2008 1 次提交
  13. 26 1月, 2008 2 次提交
    • C
      [ARM] 4583/1: ARMv7: Add VFPv3 support · 25ebee02
      Catalin Marinas 提交于
      This patch adds the support for VFPv3 (the kernel currently supports
      VFPv2). The main difference is 32 double registers (compared to 16).
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      25ebee02
    • C
      [ARM] 4582/2: Add support for the common VFP subarchitecture · c98929c0
      Catalin Marinas 提交于
      This patch allows the VFP support code to run correctly on CPUs
      compatible with the common VFP subarchitecture specification (Appendix
      B in the ARM ARM v7-A and v7-R edition). It implements support for VFP
      subarchitecture 2 while being backwards compatible with
      subarchitecture 1.
      
      On VFP subarchitecture 1, the arithmetic exceptions are asynchronous
      (or imprecise as described in the old ARM ARM) unless the FPSCR.IXE
      bit is 1. The exceptional instructions can be read from FPINST and
      FPINST2 registers. With VFP subarchitecture 2, the arithmetic
      exceptions can also be synchronous and marked by the FPEXC.DEX bit
      (the FPEXC.EX bit is cleared). CPUs implementing the synchronous
      arithmetic exceptions don't have the FPINST and FPINST2 registers and
      accessing them would trigger and undefined exception.
      
      Note that FPEXC.EX bit has an additional meaning on subarchitecture 1
      - if it isn't set, there is no additional information in FPINST and
      FPINST2 that needs to be saved at context switch or when lazy-loading
      the VFP state of a different thread.
      
      The patch also removes the clearing of the cumulative exception flags in
      FPSCR when additional exceptions were raised. It is up to the user
      application to clear these bits.
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c98929c0
  14. 11 1月, 2008 1 次提交
  15. 21 10月, 2007 2 次提交
  16. 16 10月, 2007 1 次提交
    • S
      kbuild: enable 'make AFLAGS=...' to add additional options to AS · 222d394d
      Sam Ravnborg 提交于
      The variable AFLAGS is a wellknown variable and the usage by
      kbuild may result in unexpected behaviour.
      On top of that several people over time has asked for a way to
      pass in additional flags to gcc.
      
      This patch replace use of AFLAGS with KBUILD_AFLAGS all over
      the tree.
      
      Patch was tested on following architectures:
      alpha, arm, i386, x86_64, mips, sparc, sparc64, ia64, m68k, s390
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      222d394d
  17. 13 9月, 2007 1 次提交
  18. 20 7月, 2007 1 次提交
  19. 10 6月, 2007 1 次提交
    • R
      [ARM] VFP: fix section mismatch error · 5d4cae5f
      Russell King 提交于
      Fix a real section mismatch issue; the test code is thrown away after
      initialisation, but if we do not detect the VFP hardware, it is left
      hooked into the exception handler.  Any VFP instructions which are
      subsequently executed risk calling the discarded exception handler.
      
      Introduce a new "null" handler which returns to the "unrecognised
      fault" return address.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5d4cae5f
  20. 22 4月, 2007 1 次提交
  21. 26 1月, 2007 1 次提交
  22. 03 1月, 2007 1 次提交
  23. 09 12月, 2006 1 次提交
    • R
      [ARM] Handle HWCAP_VFP in VFP support code · efe90d27
      Russell King 提交于
      Don't set HWCAP_VFP in the processor support file; not only does it
      depend on the processor features, but it also depends on the support
      code being present.  Therefore, only set it if the support code
      detects that we have a VFP coprocessor attached.
      
      Also, move the VFP handling of the coprocessor access register into
      the VFP support code.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      efe90d27
  24. 28 10月, 2006 2 次提交
  25. 12 10月, 2006 1 次提交
  26. 03 10月, 2006 1 次提交
    • F
      [PATCH] arm build fail: vfpsingle.c · 42d3fb5a
      Frederik Deweerdt 提交于
      It looks like Zach Brown's patch pr_debug-check-pr_debug-arguments
      worked as inteded. That is, it doesn't "allow completely incorrect code
      to build." :).
      
      The arm build fails with the following message:
        CC      arch/arm/vfp/vfpsingle.o
        arch/arm/vfp/vfpsingle.c: In function `__vfp_single_normaliseround':
        arch/arm/vfp/vfpsingle.c:201: error: `func' undeclared (first use in
        this function)
        arch/arm/vfp/vfpsingle.c:201: error: (Each undeclared identifier is
        reported only once
        arch/arm/vfp/vfpsingle.c:201: error: for each function it appears in.)
        make[1]: *** [arch/arm/vfp/vfpsingle.o] Error 1
        make: *** [arch/arm/vfp] Error 2
      
      The following patch fixes the issue by using func only when DEBUG is
      defined.
      Signed-off-by: NFrederik Deweerdt <frederik.deweerdt@gmail.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Zach Brown <zach.brown@oracle.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      42d3fb5a
  27. 25 9月, 2006 2 次提交
  28. 20 9月, 2006 2 次提交
    • D
      [ARM] 3759/2: Remove uses of %? · 6a39dd62
      Daniel Jacobowitz 提交于
      Patch from Daniel Jacobowitz
      
      The ARM kernel has several uses of asm("foo%?").  %? is a GCC internal
      modifier used to output conditional execution predicates.  However, no
      version of GCC supports conditionalizing asm statements.  GCC 4.2 will
      correctly expand %? to the empty string in user asms.  Earlier versions may
      reuse the condition from the previous instruction.  In 'if (foo) asm
      ("bar%?");' this is somewhat likely to be right... but not reliable.
      
      So, the only safe thing to do is to remove the uses of %?.  I believe
      the tlbflush.h occurances were supposed to be removed before, based
      on the comment about %? not working at the top of that file.
      
      Old versions of GCC could omit branches around user asms if the asm didn't
      mark the condition codes as clobbered.  This problem hasn't been seen on any
      recent (3.x or 4.x) GCC, but it could theoretically happen.  So, where
      %? was removed a cc clobber was added.
      Signed-off-by: NDaniel Jacobowitz <dan@codesourcery.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      6a39dd62
    • R
      [ARM] Optimise VFP thread notify function a little · 681a4991
      Russell King 提交于
      The common case for the thread notifier is a context switch.  Tell
      gcc that this is the most likely condition so it can optimise the
      function for this case.
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      681a4991
  29. 30 8月, 2006 1 次提交
  30. 27 8月, 2006 2 次提交