On Mon, Jan 10, 2005 at 05:30:25PM -0800, Linus Torvalds wrote:
I don't think ioaddr_t needs to match resources. None of the IO accessor
functions take "u64"s anyway - and aren't likely to do so in the future
either - so "unsigned long" should be good enough.
Having u64 for resource handling is mainly an issue for RAM and
memory-mapped IO (right now the 32-bit limit means that we throw away
information about stuff above the 4GB mark from the e820 interfaces on
x86, for example - that _happens_ to work because we never see anything but RAM there anyway, but it means that /proc/iomem doesn't show all of the system RAM, and it does mean that our resource management doesn't actually handle 64-bit addresses correctly. See drivers/pci/probe.c for the result:
"PCI: Unable to handle 64-bit address for device xxxx"
(and I do not actually think this has _ever_ happened in real life, which makes me suspect that Windows doesn't handle them either - but it inevitably will happen some day).
I have a vague recollection of seeing a report of an ia32 device and/or
machine with this property from John Fusco but am having a tough time
searching the archives properly for it. I do recall it being around the
time the remap_pfn_range() work was started, and I also claimed it as
one of the motivators of it in one of my posts. I'm unaware of whether
there are more general resources in John Fusco's situation.
My follow-ups began with:
Message-ID: <20040924021735.GL9106@xxxxxxxxxxxxxx>
References: <41535AAE.6090700@xxxxxxxxx>