On Thu, 2010-04-15 at 16:12 +1000, Stephen Rothwell wrote: > > Caused by commit bd6d29c25bb1a24a4c160ec5de43e0004e01f72b ("lockstat: > Make lockstat counting per cpu"). This added a WARN_ON_ONCE to > debug_atomic_inc() which is called from trace_hardirqs_on_caller() > with > irqs enabled. > > Line 2301 is: > > if (unlikely(curr->hardirqs_enabled)) { > debug_atomic_inc(redundant_hardirqs_on); <--- 2301 > return; > } > > This is especially bad since on PowerPC, WARN_ON is a TRAP and the > return > path from the TRAP also calls trace_hardirqs_on_caller(), so the TRAP > recurses ... I think this is because our syscall entry pretty much force-enable irqs. I remember deciding back then that getting lockdep balanced in that area was tricky and I didn't do it to avoid adding more overhead to the syscall path but I suppose I could revisit if necessary. Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html