[PATCH] NVMe: Fix possible scheduling while atomic error

Keith Busch keith.busch at intel.com
Wed May 25 10:57:37 PDT 2016


On Wed, May 25, 2016 at 01:18:42AM -0700, Christoph Hellwig wrote:
> On Tue, May 24, 2016 at 03:59:21PM -0400, Keith Busch wrote:
> > On Tue, May 24, 2016 at 11:43:21AM -0700, Ming Lin wrote:
> > > 
> > > It's blk_mq_cancel_requeue_work() that potentially sleeps.
> > 
> > Right, I don't know what I was thinking... 
> > 
> > AFAICT, the patch is fine as-is if Christoph is okay with it.
> 
> I still don't why we need to delay the call to blk_mq_stop_hw_queues
> to ->queue_rq.

Eh? It's still stopped in the same place as always, so it's not
delayed. We just call it again from queue_rq because requeue_work can
start h/w queues on its own. This is very similar to scsi's queue_rq
in scsi_lib.c.



More information about the Linux-nvme mailing list