Re: 2.6.25rc7 lockdep trace
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2008-03-29 12:51:06
Attachments
- signature.asc [application/pgp-signature] 828 bytes
From: Johannes Berg <johannes@sipsolutions.net>
Date: 2008-03-29 12:51:06
quoted
When you call cancel_work_sync(), the work struct will be grabbed by the code (really __cancel_work_timer) and removed from the queue. That just operates on bits and a spinlock, not locks held across the struct work function execution, and ensures it is race-free without needing any such locks...quoted
However, as I just tried to explain, cancel_work_sync() _is_ safe to run while holding the RTNL because it doesn't need any runqueue lock.These issues are so seldom now that I forget these details each time "after use", so maybe I miss something again, but shouldn't this rather read something like this?: cancel_work_sync() _is_ safe to run while holding the RTNL against works which don't take RTNL.
Yes, indeed, I should have said that. johannes