aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/io_64.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-03-24 14:22:39 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-03-24 14:22:39 -0400
commitb9e76a00749521f2b080fa8a4fb15f66538ab756 (patch)
tree814bd118b1a44b370b080d96cbe19763aebf9f69 /include/asm-x86/io_64.h
parent92896bd9fd75b1c993b92874d339a8088bb75560 (diff)
x86-32: Pass the full resource data to ioremap()
It appears that 64-bit PCI resources cannot possibly ever have worked on x86-32 even when the RESOURCES_64BIT config option was set, because any driver that tried to [pci_]ioremap() the resource would have been unable to do so because the high 32 bits would have been silently dropped on the floor by the ioremap() routines that only used "unsigned long". Change them to use "resource_size_t" instead, which properly encodes the whole 64-bit resource data if RESOURCES_64BIT is enabled. Acked-by: H. Peter Anvin <hpa@kernel.org> Acked-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-x86/io_64.h')
-rw-r--r--include/asm-x86/io_64.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/asm-x86/io_64.h b/include/asm-x86/io_64.h
index f64a59cc396d..db0be2011a3c 100644
--- a/include/asm-x86/io_64.h
+++ b/include/asm-x86/io_64.h
@@ -158,13 +158,13 @@ extern void early_iounmap(void *addr, unsigned long size);
158 * it's useful if some control registers are in such an area and write combining 158 * it's useful if some control registers are in such an area and write combining
159 * or read caching is not desirable: 159 * or read caching is not desirable:
160 */ 160 */
161extern void __iomem *ioremap_nocache(unsigned long offset, unsigned long size); 161extern void __iomem *ioremap_nocache(resource_size_t offset, unsigned long size);
162extern void __iomem *ioremap_cache(unsigned long offset, unsigned long size); 162extern void __iomem *ioremap_cache(resource_size_t offset, unsigned long size);
163 163
164/* 164/*
165 * The default ioremap() behavior is non-cached: 165 * The default ioremap() behavior is non-cached:
166 */ 166 */
167static inline void __iomem *ioremap(unsigned long offset, unsigned long size) 167static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
168{ 168{
169 return ioremap_nocache(offset, size); 169 return ioremap_nocache(offset, size);
170} 170}