On Wed, 2017-05-03 at 11:07 -0600, Jens Axboe wrote: > +void blk_mq_stop_hw_queues(struct request_queue *q) > +{ > + __blk_mq_stop_hw_queues(q, false); > } > EXPORT_SYMBOL(blk_mq_stop_hw_queues); Hello Jens, So the approach of this patch is to make all blk_mq_stop_hw_queue() and blk_mq_stop_hw_queues() callers cancel run_work without waiting? That should make the BUG reported by Ming disappear. However, I think we may want to review all calls from block drivers to blk_mq_stop_hw_queues(). There are drivers that call this function to quiesce I/O so I think these need the synchronous work cancellation ... Bart.