s390/pci: ensure page aligned dma start address
authorSebastian Ott <sebott@linux.vnet.ibm.com>
Fri, 3 Jun 2016 17:03:12 +0000 (19:03 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 13 Jun 2016 13:58:24 +0000 (15:58 +0200)
We don't have an architectural guarantee on the value of
the dma offset but rely on it to be at least page aligned.
Enforce page alignemt of start_dma.

Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/pci/pci_dma.c

index 1ea8c07eab849e467e5678c7e3dc662c49090860..494eb832bcc5351376e31afb690ab298f5efb5c9 100644 (file)
@@ -469,6 +469,7 @@ int zpci_dma_init_device(struct zpci_dev *zdev)
         * Also set zdev->end_dma to the actual end address of the usable
         * range, instead of the theoretical maximum as reported by hardware.
         */
+       zdev->start_dma = PAGE_ALIGN(zdev->start_dma);
        zdev->iommu_size = min3((u64) high_memory,
                                ZPCI_TABLE_SIZE_RT - zdev->start_dma,
                                zdev->end_dma - zdev->start_dma + 1);