I have a driver which calls marks a physical page as PG_Reserved, calls
ioremap_nocache() on it, performs a non-destructive memory write, and then
calls iounmap().  I have a recurring problem which I can't figure out.  After
28 such map/unmap calls, I get an error in page_alloc.c on line 85.  This is
with 2.4.0-test2.  The offending line is in function __free_pages_ok:

        if (page->buffers)
                BUG();

My guess is that the page I'm trying to map with iounmap() has a non-zero value
of buffers before I map it, but ioremap() doesn't care about that.  But when I
go to iounmap it, then it checks buffers and complains.  

Is this correct?  And if so, what does 'buffers' do?






-- 
Timur Tabi - [EMAIL PROTECTED]
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 [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to