Messages in this thread |  | | Date | Sun, 23 Mar 2008 00:50:17 +0100 | From | Stefan Richter <> | Subject | Re: ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24) |
| |
Linus Torvalds wrote: > > On Sat, 22 Mar 2008, Linus Torvalds wrote: >> AND no, I don't think our x86-32 ioremap() actually works for this case, >> because while the resource data may have the full 64 bits, when the >> ioremap() happens it gets truncated to 32 bits. > > Does this patch make any difference? > > (ENTIRELY untested, I checked that it compiles on x86-64, but didn't even > test a 32-bit build, I'm hoping whoever sees this issue can also fix up > the inevitable small missed pieces) > > Linus > > --- > arch/x86/mm/ioremap.c | 6 +++--- > include/asm-x86/io_32.h | 6 +++--- > include/asm-x86/io_64.h | 6 +++--- > lib/iomap.c | 2 +- > 4 files changed, 10 insertions(+), 10 deletions(-) > > diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c > index 8fe576b..4afaba0 100644 > --- a/arch/x86/mm/ioremap.c > +++ b/arch/x86/mm/ioremap.c > @@ -106,7 +106,7 @@ static int ioremap_change_attr(unsigned long vaddr, unsigned long size, > * have to convert them into an offset in a page-aligned mapping, but the > * caller shouldn't need to know that small detail. > */ > -static void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, > +static void __iomem *__ioremap(resource_size_t phys_addr, unsigned long size, > enum ioremap_mode mode) [...]
On my x86-32 test system, none of the devices gets an MMIO region above the 4G map. (Reconfigured with CONFIG_RESOURCES_64BIT=y while having CONFIG_HIGHMEM4G=y, like in Thomas M's .config.)
So the only thing I can confirm is that the patch builds and runs fine on x86-64. -- Stefan Richter -=====-==--- --== =-=== http://arcgraph.de/sr/
|  |