Description of problem: I boot with the liveCD available for the nouveau test day: https://fedoraproject.org/wiki/QA/Test_Days/2009-03-26 with a Hauppauge Nova-T USB tv tuner plugged in. In /var/log/messages during boot I see an error reproduce at the bottom of this description. The kernel version is 2.6.29-0.279.rc8.git6.fc11.i586. Mar 26 21:37:39 localhost kernel: dib0700: loaded with support for 9 different device-types Mar 26 21:37:39 localhost kernel: dvb-usb: found a 'Hauppauge Nova-T Stick' in warm state. Mar 26 21:37:39 localhost kernel: dvb-usb: will pass the complete MPEG2 transport stream to the software demuxer. Mar 26 21:37:39 localhost kernel: DVB: registering new adapter (Hauppauge Nova-T Stick) Mar 26 21:37:39 localhost kernel: DVB: registering adapter 0 frontend 0 (DiBcom 7000PC)... Mar 26 21:37:39 localhost kernel: HDA Intel 0000:00:1b.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19 Mar 26 21:37:39 localhost kernel: Mar 26 21:37:39 localhost kernel: ============================================= Mar 26 21:37:39 localhost kernel: [ INFO: possible recursive locking detected ] Mar 26 21:37:39 localhost kernel: 2.6.29-0.279.rc8.git6.fc11.i586 #1 Mar 26 21:37:39 localhost kernel: --------------------------------------------- Mar 26 21:37:39 localhost kernel: modprobe/1889 is trying to acquire lock: Mar 26 21:37:39 localhost kernel: (&adap->bus_lock){--..}, at: [<f7c47455>] i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: Mar 26 21:37:39 localhost kernel: but task is already holding lock: Mar 26 21:37:39 localhost kernel: (&adap->bus_lock){--..}, at: [<f7c47455>] i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: Mar 26 21:37:39 localhost kernel: other info that might help us debug this: Mar 26 21:37:39 localhost kernel: 1 lock held by modprobe/1889: Mar 26 21:37:39 localhost kernel: #0: (&adap->bus_lock){--..}, at: [<f7c47455>] i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: Mar 26 21:37:39 localhost kernel: stack backtrace: Mar 26 21:37:39 localhost kernel: Pid: 1889, comm: modprobe Not tainted 2.6.29-0.279.rc8.git6.fc11.i586 #1 Mar 26 21:37:39 localhost kernel: Call Trace: Mar 26 21:37:39 localhost kernel: [<c06ee3cd>] ? printk+0x14/0x17 Mar 26 21:37:39 localhost kernel: [<c0450f94>] __lock_acquire+0x770/0xad1 Mar 26 21:37:39 localhost kernel: [<c0547700>] ? free_object+0x27/0x92 Mar 26 21:37:39 localhost kernel: [<f7c47455>] ? i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: [<c0451350>] lock_acquire+0x5b/0x81 Mar 26 21:37:39 localhost kernel: [<f7c47455>] ? i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: [<c06ef547>] __mutex_lock_common+0xdd/0x338 Mar 26 21:37:39 localhost kernel: [<f7c47455>] ? i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: [<c06ef849>] mutex_lock_nested+0x33/0x3b Mar 26 21:37:39 localhost kernel: [<f7c47455>] ? i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: [<f7c47455>] i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: [<f7d741e5>] dibx000_i2c_gated_tuner_xfer+0x19e/0x1b5 [dibx000_common] Mar 26 21:37:39 localhost kernel: [<f7c47461>] i2c_transfer+0x6c/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: [<f7c5c1f9>] mt2060_readreg+0x4d/0x6b [mt2060] Mar 26 21:37:39 localhost kernel: [<f7c5c51a>] mt2060_attach+0x62/0x21c [mt2060] Mar 26 21:37:39 localhost kernel: [<f7c5c4b8>] ? mt2060_attach+0x0/0x21c [mt2060] Mar 26 21:37:39 localhost kernel: [<f9fcfe3b>] stk7700p_tuner_attach+0xe7/0x12a [dvb_usb_dib0700] Mar 26 21:37:39 localhost kernel: [<f8db441c>] ? dvb_register_frontend+0xf0/0xfd [dvb_core] Mar 26 21:37:39 localhost kernel: [<f7c63bef>] dvb_usb_adapter_frontend_init+0xc1/0xe2 [dvb_usb] Mar 26 21:37:39 localhost kernel: [<f7c63750>] dvb_usb_device_init+0x3c2/0x49e [dvb_usb] Mar 26 21:37:39 localhost kernel: [<f9fce69a>] dib0700_probe+0x30/0x5e [dvb_usb_dib0700] Mar 26 21:37:39 localhost kernel: [<c060bf63>] usb_probe_interface+0xe8/0x12e Mar 26 21:37:39 localhost kernel: [<c05c6b4a>] driver_probe_device+0xa7/0x122 Mar 26 21:37:39 localhost kernel: [<c05c6c16>] __driver_attach+0x51/0x70 Mar 26 21:37:39 localhost kernel: [<c05c6516>] bus_for_each_dev+0x3f/0x67 Mar 26 21:37:39 localhost kernel: [<c05c69dc>] driver_attach+0x19/0x1b Mar 26 21:37:39 localhost kernel: [<c05c6bc5>] ? __driver_attach+0x0/0x70 Mar 26 21:37:39 localhost kernel: [<c05c5f7b>] bus_add_driver+0x9d/0x1b3 Mar 26 21:37:39 localhost kernel: [<c05c6dd7>] driver_register+0x74/0xd8 Mar 26 21:37:39 localhost kernel: [<c054700d>] ? __spin_lock_init+0x28/0x4b Mar 26 21:37:39 localhost kernel: [<c060bd3f>] usb_register_driver+0x79/0xd6 Mar 26 21:37:39 localhost kernel: [<f9fa7000>] ? dib0700_module_init+0x0/0x44 [dvb_usb_dib0700] Mar 26 21:37:39 localhost kernel: [<f9fa7028>] dib0700_module_init+0x28/0x44 [dvb_usb_dib0700] Mar 26 21:37:39 localhost kernel: [<c040115a>] _stext+0x6a/0x17f Mar 26 21:37:39 localhost kernel: [<c04501e9>] ? trace_hardirqs_on_caller+0x121/0x145 Mar 26 21:37:39 localhost kernel: [<c0450218>] ? trace_hardirqs_on+0xb/0xd Mar 26 21:37:39 localhost kernel: [<c044ef6f>] ? register_lock_class+0x17/0x291 Mar 26 21:37:39 localhost kernel: [<c042b951>] ? finish_task_switch+0x4e/0xb4 Mar 26 21:37:39 localhost kernel: [<c044ef6f>] ? register_lock_class+0x17/0x291 Mar 26 21:37:39 localhost kernel: [<c044ef6f>] ? register_lock_class+0x17/0x291 Mar 26 21:37:39 localhost kernel: [<c044fcdc>] ? mark_lock+0x1e/0x30b Mar 26 21:37:39 localhost kernel: [<c05477d6>] ? debug_check_no_obj_freed+0x6b/0x153 Mar 26 21:37:39 localhost kernel: [<c054786b>] ? debug_check_no_obj_freed+0x100/0x153 Mar 26 21:37:39 localhost kernel: [<c044fcdc>] ? mark_lock+0x1e/0x30b Mar 26 21:37:39 localhost kernel: [<c0476655>] ? marker_update_probe_range+0x1f/0x1fe Mar 26 21:37:39 localhost kernel: [<c0477593>] ? tracepoint_update_probe_range+0x1f/0x8d Mar 26 21:37:39 localhost kernel: [<c044fcdc>] ? mark_lock+0x1e/0x30b Mar 26 21:37:39 localhost kernel: [<c045001c>] ? mark_held_locks+0x53/0x6a Mar 26 21:37:39 localhost kernel: [<c06ef74b>] ? __mutex_lock_common+0x2e1/0x338 Mar 26 21:37:39 localhost kernel: [<c044fcdc>] ? mark_lock+0x1e/0x30b Mar 26 21:37:39 localhost kernel: [<c045001c>] ? mark_held_locks+0x53/0x6a Mar 26 21:37:39 localhost kernel: [<c06ef313>] ? __mutex_unlock_slowpath+0x113/0x128 Mar 26 21:37:39 localhost kernel: [<c04501e9>] ? trace_hardirqs_on_caller+0x121/0x145 Mar 26 21:37:39 localhost kernel: [<c0450218>] ? trace_hardirqs_on+0xb/0xd Mar 26 21:37:39 localhost kernel: [<c0446520>] ? __blocking_notifier_call_chain+0x45/0x51 Mar 26 21:37:39 localhost kernel: [<c0408509>] ? sched_clock+0x9/0xd Mar 26 21:37:39 localhost kernel: [<c044eb7a>] ? lock_release_holdtime+0x2b/0x123 Mar 26 21:37:39 localhost kernel: [<c0446520>] ? __blocking_notifier_call_chain+0x45/0x51 Mar 26 21:37:39 localhost kernel: [<c0445c88>] ? up_read+0x1b/0x2f Mar 26 21:37:39 localhost kernel: [<c0446520>] ? __blocking_notifier_call_chain+0x45/0x51 Mar 26 21:37:39 localhost kernel: [<c045914d>] sys_init_module+0x8d/0x190 Mar 26 21:37:39 localhost kernel: [<c0403f92>] syscall_call+0x7/0xb Mar 26 21:37:39 localhost kernel: MT2060: successfully identified (IF1 = 1220) Mar 26 21:37:39 localhost kernel: input: IR-receiver inside an USB DVB receiver as /devices/pci0000:00/0000:00:1d.7/usb1/1-4/input/input6 Mar 26 21:37:39 localhost kernel: dvb-usb: schedule remote query interval to 50 msecs. Mar 26 21:37:39 localhost kernel: dvb-usb: Hauppauge Nova-T Stick successfully initialized and connected. Mar 26 21:37:39 localhost kernel: usbcore: registered new interface driver dvb_usb_dib0700 Mar 26 21:37:39 localhost kernel: modprobe used greatest stack depth: 5528 bytes left
The circular locking detection is rising on i2c_core. The only place where the lock is used is on this code (at i2c-core.c): if (in_atomic() || irqs_disabled()) { ret = mutex_trylock(&adap->bus_lock); if (!ret) /* I2C activity is ongoing. */ return -EAGAIN; } else { mutex_lock_nested(&adap->bus_lock, adap->level); } ret = adap->algo->master_xfer(adap,msgs,num); mutex_unlock(&adap->bus_lock); What's weird is that the circular locking detection didn't get any info about the first lock usage: Mar 26 21:37:39 localhost kernel: #0: (&adap->bus_lock){--..}, at: [<f7c47455>] i2c_transfer+0x60/0x7e [i2c_core] Mar 26 21:37:39 localhost kernel: Mar 26 21:37:39 localhost kernel: stack backtrace: Mar 26 21:37:39 localhost kernel: Pid: 1889, comm: modprobe Not tainted The second lock call is happening on this part of dib0700 driver: if (st->is_dib7000pc) tun_i2c = dib7000p_get_i2c_master(adap->fe, DIBX000_I2C_INTERFACE_TUNER, 1); else tun_i2c = dib7000m_get_i2c_master(adap->fe, DIBX000_I2C_INTERFACE_TUNER, 1); return dvb_attach(mt2060_attach, adap->fe, tun_i2c, &stk7700p_mt2060_config, if1) == NULL ? -ENODEV : 0; Without the first locking stack, it is hard to address this issue. I'll see if the i2c maintainer or if the dib driver author has some ideas about what's going here. Maybe this is just a false alarm.
This bug appears to have been reported against 'rawhide' during the Fedora 11 development cycle. Changing version to '11'. More information and reason for this action is here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
I did not see this on F11 but I see this now on latest F12/rawhide with kernel kernel-2.6.31.1-56.fc12.x86_64... any news?
Created attachment 363898 [details] ops with 2040:7070 Hauppauge Nova-T Stick 3
This message is a reminder that Fedora 11 is nearing its end of life. Approximately 30 (thirty) days from now Fedora will stop maintaining and issuing updates for Fedora 11. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At that time this bug will be closed as WONTFIX if it remains open with a Fedora 'version' of '11'. Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, simply change the 'version' to a later Fedora version prior to Fedora 11's end of life. Bug Reporter: Thank you for reporting this issue and we are sorry that we may not be able to fix it before Fedora 11 is end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora please change the 'version' of this bug to the applicable version. If you are unable to change the version, please add a comment here and someone will do it for you. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Fedora 11 changed to end-of-life (EOL) status on 2010-06-25. Fedora 11 is no longer maintained, which means that it will not receive any further security or bug fix updates. As a result we are closing this bug. If you can reproduce this bug against a currently maintained version of Fedora please feel free to reopen this bug against that version. Thank you for reporting this bug and we are sorry it could not be fixed.