On Thu, Feb 07, 2013 at 08:32:47AM -0800, Tejun Heo wrote: > On Thu, Feb 07, 2013 at 03:28:31PM +0000, Mark Brown wrote: > > On Wed, Feb 06, 2013 at 11:40:09AM -0800, Tejun Heo wrote: > > > Convert to the much saner new idr interface. > > > Only compile tested. > > This broke I2C for me in -next today, I saw a spinlock bad magic error > > calling pm_runtime_enable(). > Hmmm... weird, can't see where the difference in behavior would come > from. The only material difference would be if id < 0 && id != -1 in > i2c_add_numbered_adapter(), which now would trigger WARN_ON_ONCE() > inside idr_alloc() instead of silently returning -EINVAL. > Can you please elaborate the failure? I can't see how the idr > conversion would lead to spinlock bad magic error. Does reverting > this patch make the problem go away? Yes, reverting the patch made the issue vanish. I've no more diagnostics I'm afraid, just a 10s timeout then bad magic - it looks like memory corruption. I'll try to find time to dig in more but not sure when that'll happen.