Re: ioremap()/iounmap() problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Mon, 2009-01-19 at 11:01 +0000, ext Russell King - ARM Linux wrote:
> On Mon, Jan 19, 2009 at 12:23:03PM +0200, Tomi Valkeinen wrote:
> > 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. 
> 
> In unmap_area_sections(), try changing:
> 
>         unsigned long addr = virt, end = virt + (size & ~SZ_1M);
> 
> to
> 
>         unsigned long addr = virt, end = virt + (size & ~(SZ_1M - 1));

This didn't help. I Added two debug prints, not sure if it means
anything but the size on the second unmap is not the same as in the
previous ones.

remap_area_sections(virt=d2000000, size=1000000, end=d3000000, pfn=70000)
unmap_area_sections(virt=d2000000, size=1000000, end=d3000000)
ioremapped to d2000000
unmap_area_sections(virt=d2000000, size=1001000, end=d3000000)

 Tomi

--
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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux