x86-32: Pass the full resource data to ioremap()
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 24 Mar 2008 18:22:39 +0000 (11:22 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 24 Mar 2008 18:22:39 +0000 (11:22 -0700)
commitb9e76a00749521f2b080fa8a4fb15f66538ab756
tree814bd118b1a44b370b080d96cbe19763aebf9f69
parent92896bd9fd75b1c993b92874d339a8088bb75560
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>
arch/x86/mm/ioremap.c
include/asm-x86/io_32.h
include/asm-x86/io_64.h
lib/iomap.c