]> git.baikalelectronics.ru Git - kernel.git/commit
page_cgroup: fix horrid swap accounting regression
authorHugh Dickins <hughd@google.com>
Tue, 6 Mar 2012 04:52:55 +0000 (20:52 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 6 Mar 2012 16:18:23 +0000 (08:18 -0800)
commit36572656df4c99ee50e85904b28704a3e400d152
tree6ddc11131cd557d0d3a32ddeb829bfefe542101b
parentf6d2554e3afe69c4fdbf05055aa8057d8e1436d4
page_cgroup: fix horrid swap accounting regression

Why is memcg's swap accounting so broken? Insane counts, wrong
ownership, unfreeable structures, which later get freed and then
accessed after free.

Turns out to be a tiny a little 3.3-rc1 regression in 78a80f359315
"page_cgroup: add helper function to get swap_cgroup": the helper
function (actually named lookup_swap_cgroup()) returns an address using
void* arithmetic, but the structure in question is a short.

Signed-off-by: Hugh Dickins <hughd@google.com>
Reviewed-by: Bob Liu <lliubbo@gmail.com>
Cc: Michal Hocko <mhocko@suse.cz>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Johannes Weiner <jweiner@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_cgroup.c