aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>2008-11-12 16:27:01 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2008-11-12 20:17:17 -0500
commit33c5d3d64589c5d379db5a5615735f6d08438369 (patch)
tree83027e5c9ade4c4f352685bb15cd66d5b98e76a3 /mm
parent6cdfcc275e40b89fb020da1088ead86a61d33115 (diff)
memcg: bugfix for memory hotplug
The start pfn calculation in page_cgroup's memory hotplug notifier chain is wrong. Tested-by: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/page_cgroup.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c
index f59d797dc5a9..1223d927904d 100644
--- a/mm/page_cgroup.c
+++ b/mm/page_cgroup.c
@@ -165,7 +165,7 @@ int online_page_cgroup(unsigned long start_pfn,
165 unsigned long start, end, pfn; 165 unsigned long start, end, pfn;
166 int fail = 0; 166 int fail = 0;
167 167
168 start = start_pfn & (PAGES_PER_SECTION - 1); 168 start = start_pfn & ~(PAGES_PER_SECTION - 1);
169 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION); 169 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION);
170 170
171 for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION) { 171 for (pfn = start; !fail && pfn < end; pfn += PAGES_PER_SECTION) {
@@ -188,7 +188,7 @@ int offline_page_cgroup(unsigned long start_pfn,
188{ 188{
189 unsigned long start, end, pfn; 189 unsigned long start, end, pfn;
190 190
191 start = start_pfn & (PAGES_PER_SECTION - 1); 191 start = start_pfn & ~(PAGES_PER_SECTION - 1);
192 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION); 192 end = ALIGN(start_pfn + nr_pages, PAGES_PER_SECTION);
193 193
194 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION) 194 for (pfn = start; pfn < end; pfn += PAGES_PER_SECTION)