Add runtime reset detection code. Partial coding done for now.
Complete the coding for reset handling. Now testing remains.
Add a work queue to handle resets so as to decouple reset from timer handling.
Cleanup IOQ creation and add initialization of the queue after creation.
At reset make all the IOQ as empty so that admin q command and ioq[0] commands are not mixed up.
Update the q counters for sync commands so that they are not messed up while completing in common msix handler.
Add code to check if a reset handler is already pending before scheduling a new reset in WQ.
Also move the initializing of the work entry to init code, and not for every time it is to be called.
Add code to reset the controller at runtime.
Create new function to handle each device activities from the timer thread.
Fix handling error for sync commands sent for drive init.
Remove BUG_ON with prints to debug it.
Change the assignment of qindex to OQ and IQ