Re: Should page->count ever be -1?

Andrea Arcangeli (
Wed, 3 Jan 2001 22:55:05 +0100

On Wed, Jan 03, 2001 at 03:07:03PM -0600, Timur Tabi wrote:
> I'm experiencing some kind of memory leaks playing with ioremap and iounmap,
> and I've narrowed down the problem to iounmap refusing to unmap the memory that
> I just mapped. The line of code in question is
> if (!PageReserved(page) && atomic_dec_and_test(&page->count)) {
> from page_alloc.c (this is 2.2.18pre15). It appears that page->count is
> already zero when this code is executed, and after it's executed, page->count
> becomes -1 (or more accurately, 0xFFFFFFFF). Is this acceptable, or is it an
> error condition?

It's an error condition. Make sure you marked the page as reserved in the mmap
callback if it's not an mmio region outside RAM.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at