aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/pci/pci_dma.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/pci/pci_dma.c')
-rw-r--r--arch/s390/pci/pci_dma.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/s390/pci/pci_dma.c b/arch/s390/pci/pci_dma.c
index 7e5573acb063..9b83d080902d 100644
--- a/arch/s390/pci/pci_dma.c
+++ b/arch/s390/pci/pci_dma.c
@@ -145,10 +145,8 @@ static int dma_update_trans(struct zpci_dev *zdev, unsigned long pa,
145 return -EINVAL; 145 return -EINVAL;
146 146
147 spin_lock_irqsave(&zdev->dma_table_lock, irq_flags); 147 spin_lock_irqsave(&zdev->dma_table_lock, irq_flags);
148 if (!zdev->dma_table) { 148 if (!zdev->dma_table)
149 dev_err(&zdev->pdev->dev, "Missing DMA table\n");
150 goto no_refresh; 149 goto no_refresh;
151 }
152 150
153 for (i = 0; i < nr_pages; i++) { 151 for (i = 0; i < nr_pages; i++) {
154 dma_update_cpu_trans(zdev, page_addr, dma_addr, flags); 152 dma_update_cpu_trans(zdev, page_addr, dma_addr, flags);
@@ -280,11 +278,8 @@ static dma_addr_t s390_dma_map_pages(struct device *dev, struct page *page,
280 size = nr_pages * PAGE_SIZE; 278 size = nr_pages * PAGE_SIZE;
281 279
282 dma_addr = zdev->start_dma + iommu_page_index * PAGE_SIZE; 280 dma_addr = zdev->start_dma + iommu_page_index * PAGE_SIZE;
283 if (dma_addr + size > zdev->end_dma) { 281 if (dma_addr + size > zdev->end_dma)
284 dev_err(dev, "(dma_addr: 0x%16.16LX + size: 0x%16.16lx) > end_dma: 0x%16.16Lx\n",
285 dma_addr, size, zdev->end_dma);
286 goto out_free; 282 goto out_free;
287 }
288 283
289 if (direction == DMA_NONE || direction == DMA_TO_DEVICE) 284 if (direction == DMA_NONE || direction == DMA_TO_DEVICE)
290 flags |= ZPCI_TABLE_PROTECTED; 285 flags |= ZPCI_TABLE_PROTECTED;
@@ -297,7 +292,8 @@ static dma_addr_t s390_dma_map_pages(struct device *dev, struct page *page,
297out_free: 292out_free:
298 dma_free_iommu(zdev, iommu_page_index, nr_pages); 293 dma_free_iommu(zdev, iommu_page_index, nr_pages);
299out_err: 294out_err:
300 dev_err(dev, "Failed to map addr: %lx\n", pa); 295 zpci_err("map error:\n");
296 zpci_err_hex(&pa, sizeof(pa));
301 return DMA_ERROR_CODE; 297 return DMA_ERROR_CODE;
302} 298}
303 299
@@ -312,8 +308,10 @@ static void s390_dma_unmap_pages(struct device *dev, dma_addr_t dma_addr,
312 npages = iommu_num_pages(dma_addr, size, PAGE_SIZE); 308 npages = iommu_num_pages(dma_addr, size, PAGE_SIZE);
313 dma_addr = dma_addr & PAGE_MASK; 309 dma_addr = dma_addr & PAGE_MASK;
314 if (dma_update_trans(zdev, 0, dma_addr, npages * PAGE_SIZE, 310 if (dma_update_trans(zdev, 0, dma_addr, npages * PAGE_SIZE,
315 ZPCI_TABLE_PROTECTED | ZPCI_PTE_INVALID)) 311 ZPCI_TABLE_PROTECTED | ZPCI_PTE_INVALID)) {
316 dev_err(dev, "Failed to unmap addr: %Lx\n", dma_addr); 312 zpci_err("unmap error:\n");
313 zpci_err_hex(&dma_addr, sizeof(dma_addr));
314 }
317 315
318 atomic64_add(npages, (atomic64_t *) &zdev->fmb->unmapped_pages); 316 atomic64_add(npages, (atomic64_t *) &zdev->fmb->unmapped_pages);
319 iommu_page_index = (dma_addr - zdev->start_dma) >> PAGE_SHIFT; 317 iommu_page_index = (dma_addr - zdev->start_dma) >> PAGE_SHIFT;