aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slab.c
diff options
context:
space:
mode:
authorNick Piggin <piggin@cyberone.com.au>2006-04-10 11:21:48 +1000
committerLinus Torvalds <torvalds@g5.osdl.org>2006-04-10 10:16:37 -0700
commit676165a8af7167f488abdcce6851a9bc36e83254 (patch)
treea9b2b8dc155b48ce073b5ada31f2ac0694118e69 /mm/slab.c
parent[Security] Keys: Fix oops when adding key to non-keyring (diff)
downloadlinux-dev-676165a8af7167f488abdcce6851a9bc36e83254.tar.xz
linux-dev-676165a8af7167f488abdcce6851a9bc36e83254.zip
[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>
Diffstat (limited to 'mm/slab.c')
0 files changed, 0 insertions, 0 deletions