1. 07 Feb, 2007 4 commits
    • Paul Mackerras's avatar
      Merge branch 'for_paulus' of... · d5112a4f
      Paul Mackerras authored
      Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc into for-2.6.21
      d5112a4f
    • Paul Mackerras's avatar
      [POWERPC] Only use H_BULK_REMOVE if the firmware supports it · 12e86f92
      Paul Mackerras authored
      
      
      The previous patch changing pSeries to use H_BULK_REMOVE broke the
      JS20 blade, where the firmware doesn't support H_BULK_REMOVE.  This
      adds a firmware check so that on machines that don't have H_BULK_REMOVE,
      we just use the H_REMOVE call as before.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      12e86f92
    • Kumar Gala's avatar
      [POWERPC] Fixup error handling when emulating a floating point instruction · 5fad293b
      Kumar Gala authored
      
      
      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: default avatarKumar Gala <galak@kernel.crashing.org>
      5fad293b
    • Kumar Gala's avatar
      [POWERPC] Enable interrupts if we are doing fp math emulation · 04903a30
      Kumar Gala authored
      
      
      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: default avatarKumar Gala <galak@kernel.crashing.org>
      04903a30
  2. 06 Feb, 2007 36 commits