[ARM] fix section-based ioremap
authorRussell King <rmk@dyn-67.arm.linux.org.uk>
Sun, 25 Jan 2009 17:36:34 +0000 (17:36 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 25 Jan 2009 17:36:34 +0000 (17:36 +0000)
commit24f11ec001920f1cfaeeed8e8b55725d900bbb56
treebb7a1007374c9ce9f60962c22f8bccb31bd6cb44
parentfb22d72782b023cda5e9876d3381f30932a64f91
[ARM] fix section-based ioremap

Tomi Valkeinen reports:
  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.

for (i = 0; i < 200; ++i) {
vaddr = ioremap(paddr, size);
if (!vaddr) {
printk("couldn't ioremap\n");
break;
}
iounmap(vaddr);
}

The changes to vmalloc.c weren't reflected in the ARM ioremap
implementation.  Turns out the fix is rather simple.

Tested-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Tested-by: Matt Gerassimoff <mgeras@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/ioremap.c