On Mon, Mar 14, 2022 at 02:29:20PM -0600, Jens Axboe wrote: > The controller would set > > ->needs_blocking_queue_rq = true; > > or something, and we'd default to false. And if that is set, when the > blk-mq queue is created, then we'd set BLK_MQ_F_BLOCKING upon creation > if that flag is true. > > That's the block layer side. Then in libata you'd need to ensure that > you check that same setting and invoke ata_qc_issue() appropriately. > > Very top level stuff, there might be more things lurking below. But > you'll probably find them as you test this stuff... FYI, this somewhat mistitled series: https://lore.kernel.org/all/20220308003957.123312-1-michael.christie@xxxxxxxxxx/ adds BLK_MQ_F_BLOCKING support to the scsi core. Doing libata should be fairly easy and can built ontop of that.