[PATCH] libata: use qc->result_tf for temp taskfile storage
Use qc->result_tf for temp taskfile storage. Signed-off-by: Albert Lee <albertcc@tw.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
3655d1d323
commit
eec4c3f317
1 changed files with 10 additions and 4 deletions
|
@ -3865,10 +3865,16 @@ static void atapi_pio_bytes(struct ata_queued_cmd *qc)
|
|||
unsigned int ireason, bc_lo, bc_hi, bytes;
|
||||
int i_write, do_write = (qc->tf.flags & ATA_TFLAG_WRITE) ? 1 : 0;
|
||||
|
||||
ap->ops->tf_read(ap, &qc->tf);
|
||||
ireason = qc->tf.nsect;
|
||||
bc_lo = qc->tf.lbam;
|
||||
bc_hi = qc->tf.lbah;
|
||||
/* Abuse qc->result_tf for temp storage of intermediate TF
|
||||
* here to save some kernel stack usage.
|
||||
* For normal completion, qc->result_tf is not relevant. For
|
||||
* error, qc->result_tf is later overwritten by ata_qc_complete().
|
||||
* So, the correctness of qc->result_tf is not affected.
|
||||
*/
|
||||
ap->ops->tf_read(ap, &qc->result_tf);
|
||||
ireason = qc->result_tf.nsect;
|
||||
bc_lo = qc->result_tf.lbam;
|
||||
bc_hi = qc->result_tf.lbah;
|
||||
bytes = (bc_hi << 8) | bc_lo;
|
||||
|
||||
/* shall be cleared to zero, indicating xfer of data */
|
||||
|
|
Loading…
Reference in a new issue