Commit 5ec6d491 authored by Gerald Schaefer's avatar Gerald Schaefer Committed by Martin Schwidefsky

s390/pci/dma: use correct segment boundary size

The boundary size for iommu_area_alloc() is currently set to a constant
value. This is wrong, we shouldn't use a constant value but rather the
return value of dma_get_seg_boundary(), since a device driver can override
the default.
Reviewed-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Signed-off-by: default avatarGerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 423edb6f
...@@ -206,11 +206,13 @@ static void dma_cleanup_tables(struct zpci_dev *zdev) ...@@ -206,11 +206,13 @@ static void dma_cleanup_tables(struct zpci_dev *zdev)
zdev->dma_table = NULL; zdev->dma_table = NULL;
} }
static unsigned long __dma_alloc_iommu(struct zpci_dev *zdev, unsigned long start, static unsigned long __dma_alloc_iommu(struct zpci_dev *zdev,
int size) unsigned long start, int size)
{ {
unsigned long boundary_size = 0x1000000; unsigned long boundary_size;
boundary_size = ALIGN(dma_get_seg_boundary(&zdev->pdev->dev) + 1,
PAGE_SIZE) >> PAGE_SHIFT;
return iommu_area_alloc(zdev->iommu_bitmap, zdev->iommu_pages, return iommu_area_alloc(zdev->iommu_bitmap, zdev->iommu_pages,
start, size, 0, boundary_size, 0); start, size, 0, boundary_size, 0);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment