At what stage do you want to send these commands? The tags for the shostIn libata case, ata_dev_configure() will cause a lot of
are not setup until scsi_add_host() -> scsi_mq_setup_tags() is called,
so can't expect blk-mq to manage reserved tags before then.
If you are required to send commands prior to scsi_add_host(), then I
suppose the low-level driver still needs to manage tags until the shost
is ready. I guess that some very simple scheme can be used, like always
use tag 0, since most probe is done serially per-host. But that's not a
case which I have had to deal with yet.
ata_exec_internal_sg() calls for IDENTIFY and various READ LOG commands.
That is all done with non-ncq commands, which means that we do not require
a hw tag. But given that you are changing ata_exec_internal_sg() to call
alloc_request + blk_execute_rq_nowait(), how would these work without a
tag, at least a soft one ? Or we would need to keep the current code to
use ata_qc_issue() directly for probe time ? That will look very ugly...