IDE, packet commands and REQ_TYPE_SENSE?
Looking at REQ_TYPE_*, I see that REQ_TYPE_SENSE is only used once in an assignment, and appears to never be tested anywhere.
Furthermore, the use of REQ_TYPE_SENSE immediately follows a previous assignment rq->cmd_type assignment:
cdrom_queue_request_sense():
[...]
/* stuff the sense request in front of our current request */
blk_rq_init(NULL, rq);
rq->cmd_type = REQ_TYPE_ATA_PC;
rq->rq_disk = info->disk;
rq->data = sense;
rq->cmd[0] = GPCMD_REQUEST_SENSE;
rq->cmd[4] = 18;
rq->data_len = 18;
rq->cmd_type = REQ_TYPE_SENSE;
rq->cmd_flags |= REQ_PREEMPT;[...]
First, the code assigns REQ_TYPE_ATA_PC, then without any intervening tests or branches, it assigns REQ_TYPE_SENSE.
So, some questions...
Is REQ_TYPE_ATA_PC sufficient (i.e. the first assignment)?
Can we get rid of REQ_TYPE_SENSE?
What are the differences between REQ_TYPE_ATA_PC and REQ_TYPE_BLOCK_PC?
Would it be possible to eliminate REQ_TYPE_ATA_PC after some work, as
well?
Jeff
Quoted 1 line · Jeff Garzik
Can we get rid of
REQ_TYPE_SENSE?
Strike that, I forgot about blk_sense_request()
Hi,
Quoted 2 lines
What are the differences between
REQ_TYPE_ATA_PCandREQ_TYPE_BLOCK_PC? Would it be possible to eliminateREQ_TYPE_ATA_PCafter some work, as well?
That's the plan. However, I'd like to wait for Tejun's block patches to get settled first,
especially the convert-to-bio from rq->data bits.
Signature · 2 lines
Regards/Gruss, Boris