ba330ffebb
It turns out that libata has already dma_map_sg'd the scatterlist entries that go with an ata_queued_cmd by the time it calls sas_ata_qc_issue. sas_ata_qc_issue passes this scatterlist to aic94xx. Unfortunately, aic94xx assumes that any scatterlist passed to it needs to be pci_map_sg'd... which blows away the mapping that libata created! This causes (on a x260) Calgary IOMMU table leaks and duplicate frees when aic94xx and libata try to {pci,dma}_unmap_sg the scatterlist. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Key this check off ATA_PROTOCOL_STP Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com> |
||
---|---|---|
.. | ||
aic94xx_dev.c | ||
aic94xx_dump.c | ||
aic94xx_dump.h | ||
aic94xx_hwi.c | ||
aic94xx_hwi.h | ||
aic94xx_init.c | ||
aic94xx_reg_def.h | ||
aic94xx_reg.c | ||
aic94xx_reg.h | ||
aic94xx_sas.h | ||
aic94xx_scb.c | ||
aic94xx_sds.c | ||
aic94xx_seq.c | ||
aic94xx_seq.h | ||
aic94xx_task.c | ||
aic94xx_tmf.c | ||
aic94xx.h | ||
Kconfig | ||
Makefile |