libata: fix dma_unmap_sg misuse
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Fri, 27 Feb 2009 08:35:43 +0000 (17:35 +0900)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 5 Mar 2009 12:24:57 +0000 (07:24 -0500)
commit5825627c9463581fd9e70f8285685889ae5bb9bb
tree321a20a0e25aee8f32254b13730f423f6b434486
parente7d3ef13d52a126438f687a1a32da65ff926ed57
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>
drivers/ata/libata-core.c
include/linux/libata.h