From: Michal Hocko Date: Wed, 23 Mar 2011 23:42:41 +0000 (-0700) Subject: memcg: page_cgroup array is never stored on reserved pages X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=6cfddb261555dd0c0529a5fb7cf8bc5b85ad95a5;p=linux-beck.git memcg: page_cgroup array is never stored on reserved pages KAMEZAWA Hiroyuki noted that free_pages_cgroup doesn't have to check for PageReserved because we never store the array on reserved pages (neither alloc_pages_exact nor vmalloc use those pages). So we can replace the check by a BUG_ON. Signed-off-by: Michal Hocko Acked-by: KAMEZAWA Hiroyuki Cc: Balbir Singh Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c index 8e7577cdf5e4..a12cc3fa9859 100644 --- a/mm/page_cgroup.c +++ b/mm/page_cgroup.c @@ -153,11 +153,11 @@ static void free_page_cgroup(void *addr) vfree(addr); } else { struct page *page = virt_to_page(addr); - if (!PageReserved(page)) { /* Is bootmem ? */ - size_t table_size = - sizeof(struct page_cgroup) * PAGES_PER_SECTION; - free_pages_exact(addr, table_size); - } + size_t table_size = + sizeof(struct page_cgroup) * PAGES_PER_SECTION; + + BUG_ON(PageReserved(page)); + free_pages_exact(addr, table_size); } } #endif