Hi, Running with latest linux-omap kernel on OMAP3 SDP board, I have problem with iounmap(). It looks like iounmap() does not properly free large areas. Below is a test which fails for me in 6-7 loops. OMAP spesific ioremap code doesn't do much, so I think it's somewhere in generic ARM code. I looked at the ioremap code and for larger areas the code uses area sections, and I believe the bug is somewhere there. Does this work on other processors? Tomi #include <linux/module.h> #include <linux/io.h> static int test_init(void) { const unsigned long paddr = 0x70000000; const unsigned long size = 2048 * 2048 * 4; void *vaddr; int i; for (i = 0; i < 200; ++i) { vaddr = ioremap(paddr, size); if (!vaddr) { printk("couldn't ioremap\n"); break; } printk("ioremapped to %p\n", vaddr); iounmap(vaddr); } return 0; } static void test_exit(void) { } module_init(test_init); module_exit(test_exit); -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html