1. 21 Jan, 2011 3 commits
    • Steven Rostedt's avatar
      powerpc/ppc64/tracing: Add stack frame to calls of trace_hardirqs_on/off · 3cb5f1a3
      Steven Rostedt authored
          When an interrupt occurs in userspace, we can call trace_hardirqs_on/off()
          With one level stack. But if we have irqsoff tracing enabled,
          it checks both CALLER_ADDR0 and CALLER_ADDR1. The second call
          goes two stack frames up. If this is from user space, then there may
          not exist a second stack.
      
          Add a second stack when calling trace_hardirqs_on/off() otherwise
          the following oops might occur:
      
          Oops: Kernel access of bad area, sig: 11 [#1]
          PREEMPT SMP NR_CPUS=2 PA Semi PWRficient
          last sysfs file: /sys/block/sda/size
          Modules linked in: ohci_hcd ehci_hcd usbcore
          NIP: c0000000000e1c00 LR: c0000000000034d4 CTR: 000000011012c440
          REGS: c00000003e2f3af0 TRAP: 0300   Not tainted  (2.6.37-rc6+)
          MSR: 9000000000001032 <ME,IR,DR>  CR: 48044444  XER: 20000000
          DAR: 00000001ffb9db50, DSISR: 0000000040000000
          TASK = c00000003e1a00a0[2088] 'emacs' THREAD: c00000003e2f0000 CPU: 1
          GPR00: 0000000000000001 c00000003e2f3d70 c00000000084e0d0 c0000000008816e8
          GPR04: 000000001034c678 000000001032e8f9 0000000010336540 0000000040020000
          GPR08: 0000000040020000 00000001ffb9db40 c00000003e2f3e30 0000000060000000
          GPR12: 100000000000f032 c00000000fff0280 000000001032e8c9 0000000000000008
          GPR16: 00000000105be9c0 00000000105be950 00000000105be9b0 00000000105be950
          GPR20: 00000000ffb9dc50 00000000ffb9dbf0 00000000102f0000 00000000102f0000
          GPR24: 00000000102e0000 00000000102f0000 0000000010336540 c0000000009ded38
          GPR28: 00000000102e0000 c0000000000034d4 c0000000007ccb10 c00000003e2f3d70
          NIP [c0000000000e1c00] .trace_hardirqs_off+0xb0/0x1d0
          LR [c0000000000034d4] decrementer_common+0xd4/0x100
          Call Trace:
          [c00000003e2f3d70] [c00000003e2f3e30] 0xc00000003e2f3e30 (unreliable)
          [c00000003e2f3e30] [c0000000000034d4] decrementer_common+0xd4/0x100
          Instruction dump:
          81690000 7f8b0000 419e0018 f84a0028 60000000 60000000 60000000 e95f0000
          80030000 e92a0000 eb6301f8 2f800000 <eb890010> 41fe00dc a06d000a eb1e8050
          ---[ end trace 4ec7fd2be9240928 ]---
      Reported-by: default avatarJoerg Sommer <joerg@alea.gnuu.de>
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      3cb5f1a3
    • Michael Ellerman's avatar
      powerpc: Ensure the else case of feature sections will fit · c0337288
      Michael Ellerman authored
      When we create an alternative feature section, the else case must be the
      same size or smaller than the body. This is because when we patch the
      else case in we just overwrite the body, so there must be room.
      
      Up to now we just did this by inspection, but it's quite easy to enforce
      it in the assembler, so we should.
      
      The only change is to add the ifgt block, but that effects the alignment
      of the tabs and so the whole macro is modified.
      
      Also add a test, but #if 0 it because we don't want to break the build.
      Anyone who's modifying the feature macros should enable the test.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      c0337288
    • Benjamin Herrenschmidt's avatar
      50f4df4e
  2. 20 Jan, 2011 3 commits
  3. 19 Jan, 2011 18 commits
  4. 18 Jan, 2011 16 commits