Nick Piggin 676165a8af [PATCH] Fix buddy list race that could lead to page lru list corruptions
Rohit found an obscure bug causing buddy list corruption.

page_is_buddy is using a non-atomic test (PagePrivate && page_count == 0)
to determine whether or not a free page's buddy is itself free and in the
buddy lists.

Each of the conjuncts may be true at different times due to unrelated
conditions, so the non-atomic page_is_buddy test may find each conjunct to
be true even if they were not both true at the same time (ie. the page was
not on the buddy lists).

Signed-off-by: Martin Bligh <mbligh@google.com>
Signed-off-by: Rohit Seth <rohitseth@google.com>
Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-04-10 10:16:37 -07:00
..
2006-03-31 12:18:54 -08:00
2006-03-24 07:33:25 -08:00
2005-06-24 00:06:41 -07:00
2006-04-02 13:47:35 +02:00
2006-03-27 08:44:48 -08:00
2006-03-28 09:16:08 -08:00
2006-03-22 07:54:06 -08:00
2006-01-11 18:42:13 -08:00
2006-04-01 01:23:29 +02:00
2006-03-27 08:44:48 -08:00
2006-03-22 07:54:01 -08:00
2006-03-02 08:33:07 -08:00
2005-10-29 21:40:42 -07:00
2005-04-16 15:20:36 -07:00
2006-03-22 07:54:02 -08:00
2006-03-22 07:54:02 -08:00
2006-04-02 13:49:25 +02:00
2006-04-01 01:26:09 +02:00