On Fri, Feb 05, 2010 at 04:41:57PM +0100, Peter Zijlstra wrote:On Fri, 2010-02-05 at 10:30 -0500, Alan Stern wrote:On Fri, 5 Feb 2010, Peter Zijlstra wrote:Well, regular tree's aren't all that complicated, but multiple
Right, so this device stuff is much more complicated than I was led toHaven't I told you all along that tree-structured locking is
believe ;-)
complicated? :-)
inter-locking trees is a whole different story indeed.
I ever tried converting device semaphore to mutex, but failed with same issue.
At least now there's no lockdep solution for it, so I recommend revert
the mutex converting patch.
following lockdep warning with rc6-mm1:
[ 0.397123] [ 0.397124] =============================================
[ 0.397359] [ INFO: possible recursive locking detected ]
[ 0.397480] 2.6.33-rc6-mm1 #1
[ 0.397596] ---------------------------------------------
[ 0.397717] swapper/1 is trying to acquire lock:
[ 0.397836] (&dev->mutex){+.+...}, at: [<c12662e4>] __driver_attach+0x38/0x63
[ 0.398162] [ 0.398162] but task is already holding lock:
[ 0.398393] (&dev->mutex){+.+...}, at: [<c12662d8>] __driver_attach+0x2c/0x63
[ 0.399999]