Re: BUG: Bad page state [was: Strange oopses in 2.6.30]

From: KOSAKI Motohiro
Date: Sun Jun 21 2009 - 22:41:26 EST

(cc to Mel and some reviewer)

> Flags are:
> 0000000000400000 -- __PG_MLOCKED
> 800000000050000c -- my page flags
> 3650000c -- Maxim's page flags
> 0000000000693ce1 -- my PAGE_FLAGS_CHECK_AT_FREE

I guess commit da456f14d (page allocator: do not disable interrupts in
free_page_mlock()) is a bit wrong.

current code is:
static void free_hot_cold_page(struct page *page, int cold)
int clearMlocked = PageMlocked(page);
if (free_pages_check(page))
if (unlikely(clearMlocked))

Oh well, we remove PG_Mlocked *after* free_pages_check().
Then, it makes false-positive warning.

Sorry, my review was also wrong. I think reverting this patch is better ;)

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