Detach freed the request queues while the interrupt, the watchdog or a
running reset could still use them. It also left the controller
running, so a pending interrupt could hit the next attach before its
queues existed.
Tear down the interrupt, stop the watchdogs, free the task queue,
disable the controller, and only then destroy the queues. A stopped
watchdog stays stopped, so a reset still running cannot arm it again.
A reset requested after the task queue is freed is ignored.
Sponsored by: Samsung Electronics