Re: [PATCH 37/77] i2c: convert to idr_alloc()

From: Mark Brown
Date: Thu Feb 07 2013 - 11:40:11 EST


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.

Attachment: signature.asc
Description: Digital signature