Re: ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reportedregressions from 2.6.24)

From: Stefan Richter
Date: Sat Mar 22 2008 - 19:51:28 EST


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/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/