Messages in this thread | | | Date | Fri, 29 Sep 2000 17:12:58 -0500 | From | Timur Tabi <> |
| |
** Reply to message from Alan Cox <alan@lxorguk.ukuu.org.uk> on Fri, 29 Sep 2000 23:00:16 +0100 (BST)
> > "num_pages" is usually just equal to 1. This code appears to work very well. > > However, when I call the iounmap function on the memory obtained via > > ioremap_nocache, sometimes I hit a kernel BUG(). The code which causes the bug > > is in page_alloc.c, line 85 (in function __free_pages_ok): > > > > if (page->buffers) > > BUG(); > > This sounds like you are trying to do maps on pages that are in use. No can do
Why not? I mean, I can access the memory anyway from the driver, since it's all mapped linearly via phys_to_virt. All I'm really doing is creating a temporary alias.
Unfortunately, this mapping is a requirement for our product. I'd hate to have to create my own pte's and do it all manually.
What confuses me is what ioremap_nocache() doesn't fail. Why are these tests (e.g. page->buffers) not in ioremap_nocache()?
-- Timur Tabi - ttabi@interactivesi.com Interactive Silicon - http://www.interactivesi.com
When replying to a mailing-list message, please don't cc: me, because then I'll just get two copies of the same message. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |