|
@@ -4612,7 +4612,7 @@ void ata_sg_clean(struct ata_queued_cmd *qc)
|
|
|
VPRINTK("unmapping %u sg elements\n", qc->n_elem);
|
|
|
|
|
|
if (qc->n_elem)
|
|
|
- dma_unmap_sg(ap->dev, sg, qc->n_elem, dir);
|
|
|
+ dma_unmap_sg(ap->dev, sg, qc->orig_n_elem, dir);
|
|
|
|
|
|
qc->flags &= ~ATA_QCFLAG_DMAMAP;
|
|
|
qc->sg = NULL;
|
|
@@ -4727,7 +4727,7 @@ static int ata_sg_setup(struct ata_queued_cmd *qc)
|
|
|
return -1;
|
|
|
|
|
|
DPRINTK("%d sg elements mapped\n", n_elem);
|
|
|
-
|
|
|
+ qc->orig_n_elem = qc->n_elem;
|
|
|
qc->n_elem = n_elem;
|
|
|
qc->flags |= ATA_QCFLAG_DMAMAP;
|
|
|
|