PCI: mvebu: Fix I/O space end address calculation
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Fri, 3 Aug 2018 14:38:44 +0000 (16:38 +0200)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Wed, 8 Aug 2018 14:50:04 +0000 (15:50 +0100)
pcie->realio.end should be the address of last byte of the area,
therefore using resource_size() of another resource is not correct, we
must substract 1 to get the address of the last byte.

Fixes: 11be65472a427 ("PCI: mvebu: Adapt to the new device tree layout")
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/pci-mvebu.c

index 38fa2d08527d98e454f536280d67d093c890d956..a195592723c2f0828ec5fc9f5c20f9b9d2c0aec0 100644 (file)
@@ -1219,7 +1219,7 @@ static int mvebu_pcie_probe(struct platform_device *pdev)
                pcie->realio.start = PCIBIOS_MIN_IO;
                pcie->realio.end = min_t(resource_size_t,
                                         IO_SPACE_LIMIT,
-                                        resource_size(&pcie->io));
+                                        resource_size(&pcie->io) - 1);
        } else
                pcie->realio = pcie->io;