On 07/29/2013 05:18 AM, Alexander Gordeev wrote: >> -static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap) >> +static struct ata_queued_cmd *ata_qc_new(struct ata_port *ap, >> + struct scsi_cmnd *sc) >> { >> struct ata_queued_cmd *qc = NULL; >> - unsigned int i; >> + struct request *rq = sc->request; >> >> /* no command while frozen */ >> if (unlikely(ap->pflags & ATA_PFLAG_FROZEN)) >> return NULL; >> >> - /* the last tag is reserved for internal command. */ >> - for (i = 0; i < ATA_MAX_QUEUE - 1; i++) > > blk-mq does not prevent tag ATA_TAG_INTERNAL from being using. Would it make > sense to promote queue depth of length (ATA_MAX_QUEUE - 1) while always > pointing ATA_TAG_INTERNAL to qcmd (see below)? blk-mq does support a number of reserved tags, information just needs to be passed in appropriately. So there is support for reserving X number of error handling / emergency tags. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html