diff options
author | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2009-02-27 08:35:43 (GMT) |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2009-03-05 12:24:57 (GMT) |
commit | 5825627c9463581fd9e70f8285685889ae5bb9bb (patch) | |
tree | 321a20a0e25aee8f32254b13730f423f6b434486 /include | |
parent | e7d3ef13d52a126438f687a1a32da65ff926ed57 (diff) | |
download | linux-5825627c9463581fd9e70f8285685889ae5bb9bb.tar.xz |
libata: fix dma_unmap_sg misuse
libata passes the returned value of dma_map_sg() to
dma_unmap_sg(),which is the misuse of dma_unmap_sg().
DMA-mapping.txt says:
To unmap a scatterlist, just call:
pci_unmap_sg(pdev, sglist, nents, direction);
Again, make sure DMA activity has already finished.
PLEASE NOTE: The 'nents' argument to the pci_unmap_sg call must be
the _same_ one you passed into the pci_map_sg call,
it should _NOT_ be the 'count' value _returned_ from the
pci_map_sg call.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/libata.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index dd818c7..fbf064e 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h @@ -530,6 +530,7 @@ struct ata_queued_cmd { unsigned long flags; /* ATA_QCFLAG_xxx */ unsigned int tag; unsigned int n_elem; + unsigned int orig_n_elem; int dma_dir; |