Commit b70d3a2c596fb52b02488ad4aef13fa0d602090c
Committed by
Linus Torvalds
1 parent
626adeb667
Exists in
master
and in
7 other branches
iomap: fix 64 bits resources on 32 bits
Almost all implementations of pci_iomap() in the kernel, including the generic lib/iomap.c one, copies the content of a struct resource into unsigned long's which will break on 32 bits platforms with 64 bits resources. This fixes all definitions of pci_iomap() to use resource_size_t. I also "fixed" the 64bits arch for consistency. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: <linux-arch@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Showing 12 changed files with 23 additions and 23 deletions Side-by-side Diff
- arch/alpha/kernel/pci.c
- arch/arm/mm/iomap.c
- arch/frv/mb93090-mb00/pci-iomap.c
- arch/mips/lib/iomap-pci.c
- arch/mn10300/unit-asb2305/pci-iomap.c
- arch/parisc/lib/iomap.c
- arch/ppc/kernel/pci.c
- arch/sh/drivers/pci/pci.c
- arch/sparc/lib/iomap.c
- arch/sparc64/lib/iomap.c
- arch/v850/kernel/rte_mb_a_pci.c
- lib/iomap.c
arch/alpha/kernel/pci.c
... | ... | @@ -514,8 +514,8 @@ |
514 | 514 | |
515 | 515 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
516 | 516 | { |
517 | - unsigned long start = pci_resource_start(dev, bar); | |
518 | - unsigned long len = pci_resource_len(dev, bar); | |
517 | + resource_size_t start = pci_resource_start(dev, bar); | |
518 | + resource_size_t len = pci_resource_len(dev, bar); | |
519 | 519 | unsigned long flags = pci_resource_flags(dev, bar); |
520 | 520 | |
521 | 521 | if (!len || !start) |
arch/arm/mm/iomap.c
... | ... | @@ -26,8 +26,8 @@ |
26 | 26 | #ifdef CONFIG_PCI |
27 | 27 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
28 | 28 | { |
29 | - unsigned long start = pci_resource_start(dev, bar); | |
30 | - unsigned long len = pci_resource_len(dev, bar); | |
29 | + resource_size_t start = pci_resource_start(dev, bar); | |
30 | + resource_size_t len = pci_resource_len(dev, bar); | |
31 | 31 | unsigned long flags = pci_resource_flags(dev, bar); |
32 | 32 | |
33 | 33 | if (!len || !start) |
arch/frv/mb93090-mb00/pci-iomap.c
... | ... | @@ -13,8 +13,8 @@ |
13 | 13 | |
14 | 14 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
15 | 15 | { |
16 | - unsigned long start = pci_resource_start(dev, bar); | |
17 | - unsigned long len = pci_resource_len(dev, bar); | |
16 | + resource_size_t start = pci_resource_start(dev, bar); | |
17 | + resource_size_t len = pci_resource_len(dev, bar); | |
18 | 18 | unsigned long flags = pci_resource_flags(dev, bar); |
19 | 19 | |
20 | 20 | if (!len || !start) |
arch/mips/lib/iomap-pci.c
... | ... | @@ -45,8 +45,8 @@ |
45 | 45 | */ |
46 | 46 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
47 | 47 | { |
48 | - unsigned long start = pci_resource_start(dev, bar); | |
49 | - unsigned long len = pci_resource_len(dev, bar); | |
48 | + resource_size_t start = pci_resource_start(dev, bar); | |
49 | + resource_size_t len = pci_resource_len(dev, bar); | |
50 | 50 | unsigned long flags = pci_resource_flags(dev, bar); |
51 | 51 | |
52 | 52 | if (!len || !start) |
arch/mn10300/unit-asb2305/pci-iomap.c
... | ... | @@ -16,8 +16,8 @@ |
16 | 16 | */ |
17 | 17 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
18 | 18 | { |
19 | - unsigned long start = pci_resource_start(dev, bar); | |
20 | - unsigned long len = pci_resource_len(dev, bar); | |
19 | + resource_size_t start = pci_resource_start(dev, bar); | |
20 | + resource_size_t len = pci_resource_len(dev, bar); | |
21 | 21 | unsigned long flags = pci_resource_flags(dev, bar); |
22 | 22 | |
23 | 23 | if (!len || !start) |
arch/parisc/lib/iomap.c
... | ... | @@ -438,8 +438,8 @@ |
438 | 438 | /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */ |
439 | 439 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
440 | 440 | { |
441 | - unsigned long start = pci_resource_start(dev, bar); | |
442 | - unsigned long len = pci_resource_len(dev, bar); | |
441 | + resource_size_t start = pci_resource_start(dev, bar); | |
442 | + resource_size_t len = pci_resource_len(dev, bar); | |
443 | 443 | unsigned long flags = pci_resource_flags(dev, bar); |
444 | 444 | |
445 | 445 | if (!len || !start) |
arch/ppc/kernel/pci.c
... | ... | @@ -1121,8 +1121,8 @@ |
1121 | 1121 | |
1122 | 1122 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long max) |
1123 | 1123 | { |
1124 | - unsigned long start = pci_resource_start(dev, bar); | |
1125 | - unsigned long len = pci_resource_len(dev, bar); | |
1124 | + resource_size_t start = pci_resource_start(dev, bar); | |
1125 | + resource_size_t len = pci_resource_len(dev, bar); | |
1126 | 1126 | unsigned long flags = pci_resource_flags(dev, bar); |
1127 | 1127 | |
1128 | 1128 | if (!len) |
arch/sh/drivers/pci/pci.c
... | ... | @@ -191,8 +191,8 @@ |
191 | 191 | |
192 | 192 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
193 | 193 | { |
194 | - unsigned long start = pci_resource_start(dev, bar); | |
195 | - unsigned long len = pci_resource_len(dev, bar); | |
194 | + resource_size_t start = pci_resource_start(dev, bar); | |
195 | + resource_size_t len = pci_resource_len(dev, bar); | |
196 | 196 | unsigned long flags = pci_resource_flags(dev, bar); |
197 | 197 | |
198 | 198 | if (unlikely(!len || !start)) |
arch/sparc/lib/iomap.c
... | ... | @@ -21,8 +21,8 @@ |
21 | 21 | /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */ |
22 | 22 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
23 | 23 | { |
24 | - unsigned long start = pci_resource_start(dev, bar); | |
25 | - unsigned long len = pci_resource_len(dev, bar); | |
24 | + resource_size_t start = pci_resource_start(dev, bar); | |
25 | + resource_size_t len = pci_resource_len(dev, bar); | |
26 | 26 | unsigned long flags = pci_resource_flags(dev, bar); |
27 | 27 | |
28 | 28 | if (!len || !start) |
arch/sparc64/lib/iomap.c
... | ... | @@ -21,8 +21,8 @@ |
21 | 21 | /* Create a virtual mapping cookie for a PCI BAR (memory or IO) */ |
22 | 22 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
23 | 23 | { |
24 | - unsigned long start = pci_resource_start(dev, bar); | |
25 | - unsigned long len = pci_resource_len(dev, bar); | |
24 | + resource_size_t start = pci_resource_start(dev, bar); | |
25 | + resource_size_t len = pci_resource_len(dev, bar); | |
26 | 26 | unsigned long flags = pci_resource_flags(dev, bar); |
27 | 27 | |
28 | 28 | if (!len || !start) |
arch/v850/kernel/rte_mb_a_pci.c
... | ... | @@ -790,8 +790,8 @@ |
790 | 790 | |
791 | 791 | void __iomem *pci_iomap (struct pci_dev *dev, int bar, unsigned long max) |
792 | 792 | { |
793 | - unsigned long start = pci_resource_start (dev, bar); | |
794 | - unsigned long len = pci_resource_len (dev, bar); | |
793 | + resource_size_t start = pci_resource_start (dev, bar); | |
794 | + resource_size_t len = pci_resource_len (dev, bar); | |
795 | 795 | |
796 | 796 | if (!start || len == 0) |
797 | 797 | return 0; |
lib/iomap.c
... | ... | @@ -257,7 +257,7 @@ |
257 | 257 | void __iomem *pci_iomap(struct pci_dev *dev, int bar, unsigned long maxlen) |
258 | 258 | { |
259 | 259 | resource_size_t start = pci_resource_start(dev, bar); |
260 | - unsigned long len = pci_resource_len(dev, bar); | |
260 | + resource_size_t len = pci_resource_len(dev, bar); | |
261 | 261 | unsigned long flags = pci_resource_flags(dev, bar); |
262 | 262 | |
263 | 263 | if (!len || !start) |