From: Christoph Hellwig Date: Thu, 11 Oct 2018 14:17:15 +0000 (+0200) Subject: scsi: dc395x: fix DMA API usage in sg_update_list X-Git-Tag: v4.19.87~216 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1f13afca914fcd80f07c80ab36ccc6b6005460ed;p=thirdparty%2Fkernel%2Fstable.git scsi: dc395x: fix DMA API usage in sg_update_list [ Upstream commit 6c404a68bf83b4135a8a9aa1c388ebdf98e8ba7f ] We need to transfer device ownership to the CPU before we can manipulate the mapped data. Signed-off-by: Christoph Hellwig Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- diff --git a/drivers/scsi/dc395x.c b/drivers/scsi/dc395x.c index 08161df64ead5..3943347ec3c7c 100644 --- a/drivers/scsi/dc395x.c +++ b/drivers/scsi/dc395x.c @@ -1969,6 +1969,11 @@ static void sg_update_list(struct ScsiReqBlk *srb, u32 left) xferred -= psge->length; } else { /* Partial SG entry done */ + pci_dma_sync_single_for_cpu(srb->dcb-> + acb->dev, + srb->sg_bus_addr, + SEGMENTX_LEN, + PCI_DMA_TODEVICE); psge->length -= xferred; psge->address += xferred; srb->sg_index = idx;