For my purposes, rescheduling the taskqueue means that other things (such as TX, reset processing, other state handling, etc) can run before the next pass at RX completion. Also, IIRC, acquiring mutexes are one of those magic points where the scheduler may decide to switch things around in a preemption kernel. Adrian