On Wed, 16 Sep 2009 15:35:24 +0300, Mika Kuoppala wrote: > Hi, > > On Wed, 2009-09-16 at 13:51 +0200, ext Jean Delvare wrote: > > > > if (in_atomic() || irqs_disabled()) { > > > - ret = mutex_trylock(&adap->bus_lock); > > > + ret = rt_mutex_trylock(&adap->bus_lock); > > > if (!ret) > > > /* I2C activity is ongoing. */ > > > return -EAGAIN; > > > } else { > > > - mutex_lock_nested(&adap->bus_lock, adap->level); > > > + rt_mutex_lock(&adap->bus_lock); > > > > Hmm, rt_mutex doesn't handle locking model validation as regular > > mutexes have? Looks like a regression to me. > > > > There seems to be no rtmutex_lock_nested in include/linux/rtmutex.h. > > CONFIG_DEBUG_RT_MUTEXES help says this: > This allows rt mutex semantics violations and rt mutex related > deadlocks (lockups) to be detected and reported automatically. > > I don't know if this includes the same stuff as lockdep does. > > But as the context is stripped away (adap-level) it's safe to assume > that atleast some functionality is also stripped. Thus it is a > regression. OK. This is the only place where the adapter's nesting level is used, so if we apply your patch, we might as well get rid of it. -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html