On Thu, May 23, 2019 at 03:19:54AM -0700, Ming Lei wrote: > On Wed, May 22, 2019 at 11:48:12AM -0600, Keith Busch wrote: > > @@ -3605,6 +3606,11 @@ static void nvme_fw_act_work(struct work_struct *work) > > msecs_to_jiffies(admin_timeout * 1000); > > > > nvme_stop_queues(ctrl); > > + nvme_sync_queues(ctrl); > > + > > + blk_mq_quiesce_queue(ctrl->admin_q); > > + blk_sync_queue(ctrl->admin_q); > > blk_sync_queue() may not halt timeout detection completely since the > timeout work may reset timer again. Doh! Didn't hit that in testing, but point taken. > Also reset still may come during activating FW, is that a problem? IO timeout and user initiated resets should be avoided. A state machine addition may be useful here.