On Fri, Mar 25, 2011 at 02:39:03PM -0700, Dan Williams wrote: > In that sense the scope of what scic_lock protects is limited to the > core/hardware state machines (essentially a controller firmware-like > context). Anything that blocks or interfaces with an upper layer runs > unlocked in the lldd layer, and we don't play any games of dropping > the lock from the core. Cancelling and flushing timed events is > really the only place where the lock gets in the way. Having a > "timer_cancelled" flag for these few cases is the approach the core > took over dropping the lock, del_timer_sync, and re-validating state. If you just want to deactivate a handler and not wait for it to finish you can simply use del_timer instead of del_timer_sync. But it's still up to you to make sure all timer handlers have finished before freeing their containing structures or any other resource that they use, which tends to be rather complicated, and hard to maintain in the long run. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html