diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-01-13 22:17:08 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-01-16 08:36:18 +0100 |
commit | b8eee7085c1ee2aabbdbbd81514ab447951f535b (patch) | |
tree | ad8d539e6e62d3dcdff45e2497c6d28d96a55ad7 | |
parent | 05509cd36275c3bedb2218130e24f8ccf5d0cf7c (diff) | |
download | barebox-b8eee7085c1ee2aabbdbbd81514ab447951f535b.tar.gz barebox-b8eee7085c1ee2aabbdbbd81514ab447951f535b.tar.xz |
PCI: Convert ->res_start() to return resource_size_t
On 64-bit machines int doesn't cover full address space, so convert
.res_start to both accept resource_size_t as a parameter and return it
as result.
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/mips/mach-malta/pci.c | 3 | ||||
-rw-r--r-- | drivers/pci/pci-mvebu.c | 6 | ||||
-rw-r--r-- | include/linux/pci.h | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/arch/mips/mach-malta/pci.c b/arch/mips/mach-malta/pci.c index 47c0e228a7..4561123d22 100644 --- a/arch/mips/mach-malta/pci.c +++ b/arch/mips/mach-malta/pci.c @@ -131,7 +131,8 @@ static int gt64xxx_pci0_pcibios_write(struct pci_bus *bus, unsigned int devfn, } /* function returns memory address for begin of pci resource */ -static int gt64xxx_res_start(struct pci_bus *bus, resource_size_t res_addr) +static resource_size_t gt64xxx_res_start(struct pci_bus *bus, + resource_size_t res_addr) { return KSEG0ADDR(res_addr); } diff --git a/drivers/pci/pci-mvebu.c b/drivers/pci/pci-mvebu.c index 1c20f91544..c17ef3898b 100644 --- a/drivers/pci/pci-mvebu.c +++ b/drivers/pci/pci-mvebu.c @@ -145,11 +145,13 @@ static int mvebu_pcie_indirect_wr_conf(struct pci_bus *bus, return PCIBIOS_SUCCESSFUL; } -static int mvebu_pcie_res_start(struct pci_bus *bus, resource_size_t res_addr) +static resource_size_t mvebu_pcie_res_start(struct pci_bus *bus, + resource_size_t res_addr) { struct mvebu_pcie *pcie = to_pcie(bus->host); - return (int)pcie->membase + (res_addr & (resource_size(&pcie->mem)-1)); + return (resource_size_t)pcie->membase + + (res_addr & (resource_size(&pcie->mem) - 1)); } static struct pci_ops mvebu_pcie_indirect_ops = { diff --git a/include/linux/pci.h b/include/linux/pci.h index 2c7acbdda9..c00a866a48 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -143,7 +143,7 @@ struct pci_ops { int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val); /* return memory address for pci resource */ - int (*res_start)(struct pci_bus *bus, resource_size_t res_addr); + resource_size_t (*res_start)(struct pci_bus *bus, resource_size_t res_addr); }; extern struct pci_ops *pci_ops; |