There were a few things going on in the IRQ routine which are not supposed to occur in a context which can't sleep. Moving to a workqueue instead fixes this, and under test does seem to improve stability, although futher testing is needed.
Furthermore, in a context which can sleep, controlling resource access is simpler, so should be able to provide better stability in future.
There were a few things going on in the IRQ routine which are not supposed to occur in a context which can't sleep. Moving to a workqueue instead fixes this, and under test does seem to improve stability, although futher testing is needed.
Furthermore, in a context which can sleep, controlling resource access is simpler, so should be able to provide better stability in future.
Any comments or suggestions?