On Sun, 25 Mar 2012 16:11:43 +0000 "Winkler, Tomas" <tomas.winkler@xxxxxxxxx> wrote: > > > > > > Anyway, sorry, but the request still stands, I would like to see > > > Alan's or other core kernel developers at Intel's acks on this > > > before I will move it out of staging. > > > > Sure, this is understandable. Alan is involved so I will check > > where this stands. > > > It looks like Alan was too busy with his other tasks in order to > review the code. I gave it a first spin today on a T61 with Fedora 15 - the userspace lms code didn't build but adding a missing include <cstdio> fixed that trivially - the kernel side seems a bit more broken however mei 0000:00:03.0: setting latency timer to 64 mei 0000:00:03.0: irq 49 for MSI/MSI-X and when I tried opening it I get the following spew and an error of -ENODEV. ====================================================== [ INFO: possible circular locking dependency detected ] 3.3.0-next-20120328 #1 Tainted: G C ------------------------------------------------------- cat/1248 is trying to acquire lock: (&dev->device_lock){+.+.+.}, at: [<ffffffffa01348ce>] mei_open+0x57/0x199 [mei ] but task is already holding lock: (misc_mtx){+.+.+.}, at: [<ffffffff8124a57f>] misc_open+0x25/0x149 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (misc_mtx){+.+.+.}: [<ffffffff81067cd3>] lock_acquire+0x8a/0xa2 [<ffffffff8138908c>] __mutex_lock_common+0x58/0x40b [<ffffffff81389526>] mutex_lock_nested+0x36/0x3b [<ffffffff8124a807>] misc_register+0x24/0x105 [<ffffffff812d525a>] watchdog_dev_register+0x41/0x7e [<ffffffff812d4d99>] watchdog_register_device+0x61/0x80 [<ffffffffa0135f5f>] mei_watchdog_register+0x59/0xb2 [mei] [<ffffffffa0130e6e>] mei_interrupt_thread_handler+0x6ab/0x21f5 [mei] [<ffffffff810895fe>] irq_thread_fn+0x1b/0x3f [<ffffffff81089481>] irq_thread+0xac/0x16a [<ffffffff8104277c>] kthread+0xaa/0xb2 [<ffffffff8138d5d4>] kernel_thread_helper+0x4/0x10 -> #0 (&dev->device_lock){+.+.+.}: [<ffffffff8106759b>] __lock_acquire+0xa80/0xd74 [<ffffffff81067cd3>] lock_acquire+0x8a/0xa2 [<ffffffff8138908c>] __mutex_lock_common+0x58/0x40b [<ffffffff81389526>] mutex_lock_nested+0x36/0x3b [<ffffffffa01348ce>] mei_open+0x57/0x199 [mei] [<ffffffff8124a664>] misc_open+0x10a/0x149 [<ffffffff810da7ba>] chrdev_open+0x11c/0x145 [<ffffffff810d56c7>] __dentry_open+0x16d/0x27f [<ffffffff810d6797>] nameidata_to_filp+0x63/0x6a [<ffffffff810e3202>] do_last+0x55b/0x595 [<ffffffff810e3338>] path_openat+0xce/0x31f [<ffffffff810e3672>] do_filp_open+0x33/0x81 [<ffffffff810d6808>] do_sys_open+0x6a/0xfc [<ffffffff810d68b6>] sys_open+0x1c/0x1e [<ffffffff8138c1e2>] system_call_fastpath+0x16/0x1b other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(misc_mtx); lock(&dev->device_lock); lock(misc_mtx); lock(&dev->device_lock); *** DEADLOCK *** 1 lock held by cat/1248: #0: (misc_mtx){+.+.+.}, at: [<ffffffff8124a57f>] misc_open+0x25/0x149 stack backtrace: Pid: 1248, comm: cat Tainted: G C 3.3.0-next-20120328 #1 Call Trace: [<ffffffff81383d07>] print_circular_bug+0x1f8/0x209 [<ffffffff8106759b>] __lock_acquire+0xa80/0xd74 [<ffffffff81063ef8>] ? lock_release_holdtime.part.6+0x59/0x61 [<ffffffffa01348ce>] ? mei_open+0x57/0x199 [mei] [<ffffffff81067cd3>] lock_acquire+0x8a/0xa2 [<ffffffffa01348ce>] ? mei_open+0x57/0x199 [mei] [<ffffffff8138908c>] __mutex_lock_common+0x58/0x40b [<ffffffffa01348ce>] ? mei_open+0x57/0x199 [mei] [<ffffffff810657d8>] ? trace_hardirqs_on_caller+0x151/0x197 [<ffffffff81389526>] mutex_lock_nested+0x36/0x3b [<ffffffffa01348ce>] mei_open+0x57/0x199 [mei] [<ffffffff8124a664>] misc_open+0x10a/0x149 [<ffffffff810da7ba>] chrdev_open+0x11c/0x145 [<ffffffff810da69e>] ? cdev_put+0x10/0x10 [<ffffffff810d56c7>] __dentry_open+0x16d/0x27f [<ffffffff810d6797>] nameidata_to_filp+0x63/0x6a [<ffffffff810e3202>] do_last+0x55b/0x595 [<ffffffff810e3338>] path_openat+0xce/0x31f [<ffffffff8104eb9a>] ? sched_clock_cpu+0xba/0xc8 [<ffffffff81063a42>] ? trace_hardirqs_off+0xd/0xf [<ffffffff810e3672>] do_filp_open+0x33/0x81 [<ffffffff8138b44f>] ? _raw_spin_unlock+0x3c/0x49 [<ffffffff810edcff>] ? alloc_fd+0x16f/0x181 [<ffffffff810d6808>] do_sys_open+0x6a/0xfc [<ffffffff810d68b6>] sys_open+0x1c/0x1e [<ffffffff8138c1e2>] system_call_fastpath+0x16/0x1b _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel