1. 26 6月, 2008 1 次提交
  2. 07 2月, 2008 1 次提交
    • O
      [POWERPC] Fix compilation for CONFIG_DEBUGGER=n and CONFIG_KEXEC=y · 7dbb922c
      Olof Johansson 提交于
      Looks like "[POWERPC] kdump shutdown hook support" broke builds when
      CONFIG_DEBUGGER=n and CONFIG_KEXEC=y, such as in g5_defconfig:
      
      arch/powerpc/kernel/crash.c: In function 'default_machine_crash_shutdown':
      arch/powerpc/kernel/crash.c:388: error: '__debugger_fault_handler' undeclared (first use in this function)
      arch/powerpc/kernel/crash.c:388: error: (Each undeclared identifier is reported only once
      arch/powerpc/kernel/crash.c:388: error: for each function it appears in.)
      
      Move the debugger hooks to under CONFIG_DEBUGGER || CONFIG_KEXEC, since
      that's when the crash code is enabled.
      
      (I should have caught this with my build-script pre-merge, my bad. :( )
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7dbb922c
  3. 24 12月, 2007 1 次提交
  4. 12 12月, 2007 1 次提交
  5. 20 10月, 2007 2 次提交
  6. 12 10月, 2007 1 次提交
  7. 05 10月, 2007 1 次提交
    • S
      [POWERPC] 8xx: Move softemu8xx.c from arch/ppc · 5dd57a13
      Scott Wood 提交于
      Previously, Soft_emulate_8xx was called with no implementation, resulting in
      build failures whenever building 8xx without math emulation.  The
      implementation is copied from arch/ppc to resolve this issue.
      
      However, this sort of minimal emulation is not a very good idea other than
      for compatibility with existing userspaces, as it's less efficient than
      soft-float and can mislead users into believing they have soft-float.  Thus,
      it is made a configurable option, off by default.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      5dd57a13
  8. 03 10月, 2007 1 次提交
  9. 13 9月, 2007 1 次提交
  10. 18 8月, 2007 1 次提交
  11. 18 7月, 2007 1 次提交
  12. 17 7月, 2007 1 次提交
    • H
      generic bug: use show_regs() instead of dump_stack() · 608e2619
      Heiko Carstens 提交于
      The current generic bug implementation has a call to dump_stack() in case a
      WARN_ON(whatever) gets hit.  Since report_bug(), which calls dump_stack(),
      gets called from an exception handler we can do better: just pass the
      pt_regs structure to report_bug() and pass it to show_regs() in case of a
      warning.  This will give more debug informations like register contents,
      etc...  In addition this avoids some pointless lines that dump_stack()
      emits, since it includes a stack backtrace of the exception handler which
      is of no interest in case of a warning.  E.g.  on s390 the following lines
      are currently always present in a stack backtrace if dump_stack() gets
      called from report_bug():
      
       [<000000000001517a>] show_trace+0x92/0xe8)
       [<0000000000015270>] show_stack+0xa0/0xd0
       [<00000000000152ce>] dump_stack+0x2e/0x3c
       [<0000000000195450>] report_bug+0x98/0xf8
       [<0000000000016cc8>] illegal_op+0x1fc/0x21c
       [<00000000000227d6>] sysc_return+0x0/0x10
      Acked-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Acked-by: NHaavard Skinnemoen <hskinnemoen@atmel.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Kyle McMartin <kyle@parisc-linux.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      608e2619
  13. 09 5月, 2007 1 次提交
    • C
      move die notifier handling to common code · 1eeb66a1
      Christoph Hellwig 提交于
      This patch moves the die notifier handling to common code.  Previous
      various architectures had exactly the same code for it.  Note that the new
      code is compiled unconditionally, this should be understood as an appel to
      the other architecture maintainer to implement support for it aswell (aka
      sprinkling a notify_die or two in the proper place)
      
      arm had a notifiy_die that did something totally different, I renamed it to
      arm_notify_die as part of the patch and made it static to the file it's
      declared and used at.  avr32 used to pass slightly less information through
      this interface and I brought it into line with the other architectures.
      
      [akpm@linux-foundation.org: build fix]
      [akpm@linux-foundation.org: fix vmalloc_sync_all bustage]
      [bryan.wu@analog.com: fix vmalloc_sync_all in nommu]
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Cc: <linux-arch@vger.kernel.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NBryan Wu <bryan.wu@analog.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      1eeb66a1
  14. 26 3月, 2007 4 次提交
  15. 20 2月, 2007 2 次提交
    • R
      backlight: Separate backlight properties from backlight ops pointers · 599a52d1
      Richard Purdie 提交于
      Per device data such as brightness belongs to the indivdual device
      and should therefore be separate from the the backlight operation
      function pointers. This patch splits the two types of data and
      allows simplifcation of some code.
      Signed-off-by: NRichard Purdie <rpurdie@rpsys.net>
      599a52d1
    • R
      backlight: Fix external uses of backlight internal semaphore · 28ee086d
      Richard Purdie 提交于
      backlight_device->sem has a very specific use as documented in the
      header file. The external users of this are using it for a different
      reason, to serialise access to the update_status() method.
      
      backlight users were supposed to implement their own internal
      serialisation of update_status() if needed but everyone is doing
      things differently and incorrectly. Therefore add a global mutex to
      take care of serialisation for everyone, once and for all.
      
      Locking for get_brightness remains optional since most users don't
      need it.
      
      Also update the lcd class in a similar way.
      Signed-off-by: NRichard Purdie <rpurdie@rpsys.net>
      28ee086d
  16. 07 2月, 2007 2 次提交
    • K
      [POWERPC] Fixup error handling when emulating a floating point instruction · 5fad293b
      Kumar Gala 提交于
      When we do full FP emulation its possible that we need to post a SIGFPE based
      on the results of the emulation.  The previous code ignored this case completely.
      
      Additionally, the Soft_emulate_8xx case had two issues.  One, we should never
      generate a SIGFPE since the code only does data movement.  Second, we were
      interpreting the return codes incorrectly, it returns 0 on success, 1 on
      illop and -EFAULT on a data access error.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      5fad293b
    • K
      [POWERPC] Enable interrupts if we are doing fp math emulation · 04903a30
      Kumar Gala 提交于
      Anytime we are emulating an instruction we are going to be doing some form of
      get_user() to get the instruction image to decode.  Since get_user() might
      sleep we need to ensure we have interrupts enabled or we might see something
      like:
      
      Debug: sleeping function called from invalid context at arch/powerpc/kernel/traps.c:697
      in_atomic():0, irqs_disabled():1
      Call Trace:
      [D6023EB0] [C0007F84] show_stack+0x58/0x174 (unreliable)
      [D6023EE0] [C0022C34] __might_sleep+0xbc/0xd0
      [D6023EF0] [C000D158] program_check_exception+0x1d8/0x4fc
      [D6023F40] [C000E744] ret_from_except_full+0x0/0x4c
      --- Exception: 700 at 0x102a7100
          LR = 0xdb9ef04
      
      However, we want to ensure that interrupts are disabled when handling a trap
      exception that might be used for a kernel breakpoint.  This is why ProgramCheck
      is marked as EXC_XFER_STD instead of EXC_XFER_EE.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      04903a30
  17. 24 1月, 2007 1 次提交
  18. 11 12月, 2006 1 次提交
    • J
      [POWERPC] Generic BUG for powerpc · 73c9ceab
      Jeremy Fitzhardinge 提交于
      This makes powerpc use the generic BUG machinery.  The biggest reports the
      function name, since it is redundant with kallsyms, and not needed in general.
      
      There is an overall reduction of code, since module_32/64 duplicated several
      functions.
      
      Unfortunately there's no way to tell gcc that BUG won't return, so the BUG
      macro includes a goto loop.  This will generate a real jmp instruction, which
      is never used.
      
      [akpm@osdl.org: build fix]
      [paulus@samba.org: remove infinite loop in BUG_ON]
      Signed-off-by: NJeremy Fitzhardinge <jeremy@goop.org>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Hugh Dickens <hugh@veritas.com>
      Cc: Michael Ellerman <michael@ellerman.id.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Rusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      73c9ceab
  19. 08 12月, 2006 1 次提交
    • K
      [POWERPC] Add support for FP emulation for the e300c2 core · aa42c69c
      Kim Phillips 提交于
      The e300c2 has no FPU.  Its MSR[FP] is grounded to zero.  If an attempt
      is made to execute a floating point instruction (including floating-point
      load, store, or move instructions), the e300c2 takes a floating-point
      unavailable interrupt.
      
      This patch adds support for FP emulation on the e300c2 by declaring a
      new CPU_FTR_FP_TAKES_FPUNAVAIL, where FP unavail interrupts are
      intercepted and redirected to the ProgramCheck exception path for
      correct emulation handling.
      
      (If we run out of CPU_FTR bits we could look to reclaim this bit by adding
      support to test the cpu_user_features for PPC_FEATURE_HAS_FPU instead)
      
      It adds a nop to the exception path for 32-bit processors with a FPU.
      Signed-off-by: NKim Phillips <kim.phillips@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      aa42c69c
  20. 04 12月, 2006 1 次提交
  21. 01 11月, 2006 1 次提交
  22. 16 10月, 2006 1 次提交
  23. 13 9月, 2006 1 次提交
  24. 23 8月, 2006 1 次提交
    • P
      [POWERPC] Correct masks used in emulating some instructions · 87589f08
      Paul Mackerras 提交于
      When we get an illegal instruction exception, we check to see whether
      the instruction is one that we emulate for the user program.  Some of
      the masks we use in checking whether the offending instruction is one
      we care about didn't have the top bit set, which is the MSB of the
      major opcode.  Thus some undefined opcodes could get emulated as other
      (defined but unimplemented) instructions.  This corrects the masks.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      87589f08
  25. 17 8月, 2006 2 次提交
    • M
      [POWERPC] Make crash.c work on 32-bit and 64-bit · b6f35b49
      Michael Ellerman 提交于
      To compile kexec on 32-bit we need a few more bits and pieces. Rather
      than add empty definitions, we can make crash.c work on 32-bit, with
      only a couple of kludges.
      Signed-off-by: NMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b6f35b49
    • D
      [POWERPC] Make secondary CPUs call into kdump on reset exception · eac8392f
      David Wilder 提交于
      In the case of a system hang, the user will invoke soft-reset to
      initiate the kdump boot.  If xmon is enabled, the CPU(s) enter into the
      xmon debugger.   Unfortunately, the secondary CPU(s) will return to the
      hung state when they exit from the debugger (returned from die() ->
      system_reset_exception()).  This causes a problem in kdump since the
      hung CPU(s) will not respond to the IPI sent from kdump.  This patch
      fixes the issue by calling crash_kexec_secondary() directly from
      system_reset_exception() without returning to the previous state.  These
      secondary CPUs wait 5ms until the kdump boot is started by the primary
      CPU.   In the case we exited from the debugger to "recover" (command 'x'
      in xmon) the primary and the secondary CPUs will all return from die()
      -> system_reset_exception() ->crash_kexec_secondary() wait 5ms, then
      return to the previous state.  A kdump boot is not started in this case.
      Signed-off-by: NHaren Myneni <haren@us.ibm.com>
      Signed-off-by: NDavid Wilder <dwilder@us.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      eac8392f
  26. 15 8月, 2006 1 次提交
    • H
      [PATCH] Change panic_on_oops message to "Fatal exception" · 012c437d
      Horms 提交于
      Previously the message was "Fatal exception: panic_on_oops", as introduced
      in a recent patch whith removed a somewhat dangerous call to ssleep() in
      the panic_on_oops path.  However, Paul Mackerras suggested that this was
      somewhat confusing, leadind people to believe that it was panic_on_oops
      that was the root cause of the fatal exception.  On his suggestion, this
      patch changes the message to simply "Fatal exception".  A suitable oops
      message should already have been displayed.
      Signed-off-by: NSimon Horman <horms@verge.net.au>
      Cc: Paul Mackerras <paulus@samba.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      012c437d
  27. 01 8月, 2006 1 次提交
    • H
      [PATCH] panic_on_oops: remove ssleep() · cea6a4ba
      Horms 提交于
      This patch is part of an effort to unify the panic_on_oops behaviour across
      all architectures that implement it.
      
      It was pointed out to me by Andi Kleen that if an oops has occured in
      interrupt context, then calling sleep() in the oops path will only cause a
      panic, and that it would be really better for it not to be in the path at
      all.
      
      This patch removes the ssleep() call and reworks the console message
      accordinly.  I have a slght concern that the resulting console message is
      too long, feedback welcome.
      
      For powerpc it also unifies the 32bit and 64bit behaviour.
      
      Fror x86_64, this patch only updates the console message, as ssleep() is
      already not present.
      Signed-off-by: NHorms <horms@verge.net.au>
      Acked-by: NPaul Mackerras <paulus@samba.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Chris Zankel <chris@zankel.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      cea6a4ba
  28. 01 7月, 2006 1 次提交
  29. 28 6月, 2006 1 次提交
    • D
      [POWERPC] Add the use of the firmware soft-reset-nmi to kdump. · c0ce7d08
      David Wilder 提交于
      With this patch, kdump uses the firmware soft-reset NMI for two purposes:
      1) Initiate the kdump (take a crash dump) by issuing a soft-reset.
      2) Break a CPU out of a deadlock condition that is detected during kdump
      processing.
      
      When a soft-reset is initiated each CPU will enter
      system_reset_exception() and set its corresponding bit in the global
      bit-array cpus_in_sr then call die(). When die() finds the CPU's bit set
      in cpu_in_sr crash_kexec() is called to initiate a crash dump. The first
      CPU to enter crash_kexec() is called the "crashing CPU". All other CPUs
      are "secondary CPUs". The secondary CPU's pass through to
      crash_kexec_secondary() and sleep. The crashing CPU waits for all CPUs
      to enter via soft-reset then boots the kdump kernel (see
      crash_soft_reset_check())
      
      When the system crashes due to a panic or exception, crash_kexec() is
      called by panic() or die(). The crashing CPU sends an IPI to all other
      CPUs to notify them of the pending shutdown. If a CPU is in a deadlock
      or hung state with interrupts disabled, the IPI will not be delivered.
      The result being, that the kdump kernel is not booted. This problem is
      solved with the use of a firmware generated soft-reset. After the
      crashing_cpu has issued the IPI, it waits for 10 sec for all CPUs to
      enter crash_ipi_callback(). A CPU signifies its entry to
      crash_ipi_callback() by setting its corresponding bit in the
      cpus_in_crash bit array. After 10 sec, if one or more CPUs have not set
      their bit in cpus_in_crash we assume that the CPU(s) is deadlocked. The
      operator is then prompted to generate a soft-reset to break the
      deadlock. Each CPU enters the soft reset handler as described above.
      
      Two conditions must be handled at this point:
      1) The system crashed because the operator generated a soft-reset. See
      2) The system had crashed before the soft-reset was generated ( in the
      case of a Panic or oops).
      
      The first CPU to enter crash_kexec() uses the state of the kexec_lock to
      determine this state. If kexec_lock is already held then condition 2 is
      true and crash_kexec_secondary() is called, else; this CPU is flagged as
      the crashing CPU, the kexec_lock is acquired and crash_kexec() proceeds
      as described above.
      
      Each additional CPUs responding to the soft-reset will pass through
      crash_kexec() to kexec_secondary(). All secondary CPUs call
      crash_ipi_callback() readying them self's for the shutdown. When ready
      they clear their bit in cpus_in_sr. The crashing CPU waits in
      kexec_secondary() until all other CPUs have cleared their bits in
      cpus_in_sr. The kexec kernel boot is then started.
      Signed-off-by: NHaren Myneni <haren@us.ibm.com>
      Signed-off-by: NDavid Wilder <dwilder@us.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c0ce7d08
  30. 26 6月, 2006 1 次提交
  31. 09 6月, 2006 2 次提交
    • P
      [PATCH] powerpc: Implement PR_[GS]ET_UNALIGN prctls for powerpc · e9370ae1
      Paul Mackerras 提交于
      This gives the ability to control whether alignment exceptions get
      fixed up or reported to the process as a SIGBUS, using the existing
      PR_SET_UNALIGN and PR_GET_UNALIGN prctls.  We do not implement the
      option of logging a message on alignment exceptions.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      e9370ae1
    • P
      [PATCH] powerpc: Implement support for setting little-endian mode via prctl · fab5db97
      Paul Mackerras 提交于
      This adds the PowerPC part of the code to allow processes to change
      their endian mode via prctl.
      
      This also extends the alignment exception handler to be able to fix up
      alignment exceptions that occur in little-endian mode, both for
      "PowerPC" little-endian and true little-endian.
      
      We always enter signal handlers in big-endian mode -- the support for
      little-endian mode does not amount to the creation of a little-endian
      user/kernel ABI.  If the signal handler returns, the endian mode is
      restored to what it was when the signal was delivered.
      
      We have two new kernel CPU feature bits, one for PPC little-endian and
      one for true little-endian.  Most of the classic 32-bit processors
      support PPC little-endian, and this is reflected in the CPU feature
      table.  There are two corresponding feature bits reported to userland
      in the AT_HWCAP aux vector entry.
      
      This is based on an earlier patch by Anton Blanchard.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      fab5db97
  32. 31 3月, 2006 1 次提交