aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-03-24 20:02:32 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-03-24 20:02:32 -0700
commit5a17558f06993fdc509362f659582b52b0f921e3 (patch)
treed8c54416aff225097dee41f6cd0dd997639a4b28 /include
parentd56dc0b641da647012af573dac4a5fa7b9883fe0 (diff)
parent4cde32fc4b32e96a99063af3183acdfd54c563f0 (diff)
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: [libata] ahci: SB600 workaround is suspect... play it safe for now sata_promise: fix hardreset hotplug events, take 2 libata: improve HPA error handling libata: assume no device is attached if both IDENTIFYs are aborted pata_it821x: use raw nbytes in check_atapi_dma libata: implement ata_qc_raw_nbytes()
Diffstat (limited to 'include')
-rw-r--r--include/linux/libata.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h
index a05f6001364..269cdba0957 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -463,6 +463,7 @@ struct ata_queued_cmd {
unsigned int sect_size;
unsigned int nbytes;
+ unsigned int extrabytes;
unsigned int curbytes;
struct scatterlist *cursg;
@@ -1336,6 +1337,11 @@ static inline struct ata_queued_cmd *ata_qc_from_tag(struct ata_port *ap,
return NULL;
}
+static inline unsigned int ata_qc_raw_nbytes(struct ata_queued_cmd *qc)
+{
+ return qc->nbytes - min(qc->extrabytes, qc->nbytes);
+}
+
static inline void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf)
{
memset(tf, 0, sizeof(*tf));
@@ -1354,7 +1360,7 @@ static inline void ata_qc_reinit(struct ata_queued_cmd *qc)
qc->flags = 0;
qc->cursg = NULL;
qc->cursg_ofs = 0;
- qc->nbytes = qc->curbytes = 0;
+ qc->nbytes = qc->extrabytes = qc->curbytes = 0;
qc->n_elem = 0;
qc->err_mask = 0;
qc->sect_size = ATA_SECT_SIZE;