Messages in this thread | | | Date | Sat, 15 Mar 2008 18:00:16 +0100 | From | bruno.roussel@free ... | Subject | Re: possible recursive locking detected |
| |
I have switch to the new 2.6.24.3 kernel version and it's OK now Strange ...
Thank's for all
Selon Jean Delvare <khali@linux-fr.org>:
> On Sun, 9 Mar 2008 23:41:50 +0100 (CET), Jiri Kosina wrote: > > On Sun, 9 Mar 2008, Christian Kujau wrote: > > > > > > ============================================= > > > > [ INFO: possible recursive locking detected ] > > > > 2.6.24.2-1mdv #1 > > > > --------------------------------------------- > > > Hm, strange: a similiar looking issue has been reported back in 2006, it > > > even comes with a patch: http://lkml.org/lkml/2006/10/14/38 > > > ..but I cannot tell if the patch made it into mainline. I've Cc'ed the > i2c > > > folks, maybe they can tell what's going on here. > > > > I don't recall this, but from looking at the source it seems that only > > part of my patch made it upstream for some reason ... > > I applied the i2c-core part: > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=6ea23039cb1cc7c379eb5fba0ed2c53291e9bea7 > > But I have no idea what happened to the DVB device-driver specific part. > > > > > Bruno, does the patch below remove the warning for you? (we should rather > > used lockdep_set_class() now, when this is already available ... it wasn't > > in the time I was doping the original patch back in 2006). > > > > > > > > Set locking depth properly (level == 0 for DVB frontend, level == 1 for > > DVB adapter). > > > > Signed-off-by: Jiri Kosina <jkosina@suse.cz> > > > > diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c > b/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c > > index 23428cd..8c5dc35 100644 > > --- a/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c > > +++ b/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c > > @@ -27,6 +27,7 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d) > > #endif > > d->i2c_adap.algo = d->props.i2c_algo; > > d->i2c_adap.algo_data = NULL; > > + d->i2c_adap.level = 1; > > d->i2c_adap.dev.parent = &d->udev->dev; > > > > i2c_set_adapdata(&d->i2c_adap, d); > > diff --git a/drivers/media/dvb/frontends/dibx000_common.c > b/drivers/media/dvb/frontends/dibx000_common.c > > index 315e09e..a3ed8cf 100644 > > --- a/drivers/media/dvb/frontends/dibx000_common.c > > +++ b/drivers/media/dvb/frontends/dibx000_common.c > > @@ -111,6 +111,7 @@ static int i2c_adapter_init(struct i2c_adapter > *i2c_adap, struct i2c_algorithm * > > i2c_adap->class = I2C_CLASS_TV_DIGITAL, > > i2c_adap->algo = algo; > > i2c_adap->algo_data = NULL; > > + i2c_adap->level = 0; > > i2c_set_adapdata(i2c_adap, mst); > > if (i2c_add_adapter(i2c_adap) < 0) > > return -ENODEV; > > Also note: > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=cea443a81c9c6257bf2d00f1392f7d1d4ce03b75 > > This patch that was applied recently to i2c-core might cause lockdep > issues. For some reason there's no "nested" variant of mutex_trylock? > > -- > Jean Delvare >
| |