aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/mm/mem.c')
-rw-r--r--arch/powerpc/mm/mem.c45
1 files changed, 0 insertions, 45 deletions
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 32dcfc9b0082..81eb96ec13b2 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -129,51 +129,6 @@ int __devinit arch_add_memory(int nid, u64 start, u64 size)
129 return __add_pages(zone, start_pfn, nr_pages); 129 return __add_pages(zone, start_pfn, nr_pages);
130} 130}
131 131
132/*
133 * First pass at this code will check to determine if the remove
134 * request is within the RMO. Do not allow removal within the RMO.
135 */
136int __devinit remove_memory(u64 start, u64 size)
137{
138 struct zone *zone;
139 unsigned long start_pfn, end_pfn, nr_pages;
140
141 start_pfn = start >> PAGE_SHIFT;
142 nr_pages = size >> PAGE_SHIFT;
143 end_pfn = start_pfn + nr_pages;
144
145 printk("%s(): Attempting to remove memoy in range "
146 "%lx to %lx\n", __func__, start, start+size);
147 /*
148 * check for range within RMO
149 */
150 zone = page_zone(pfn_to_page(start_pfn));
151
152 printk("%s(): memory will be removed from "
153 "the %s zone\n", __func__, zone->name);
154
155 /*
156 * not handling removing memory ranges that
157 * overlap multiple zones yet
158 */
159 if (end_pfn > (zone->zone_start_pfn + zone->spanned_pages))
160 goto overlap;
161
162 /* make sure it is NOT in RMO */
163 if ((start < lmb.rmo_size) || ((start+size) < lmb.rmo_size)) {
164 printk("%s(): range to be removed must NOT be in RMO!\n",
165 __func__);
166 goto in_rmo;
167 }
168
169 return __remove_pages(zone, start_pfn, nr_pages);
170
171overlap:
172 printk("%s(): memory range to be removed overlaps "
173 "multiple zones!!!\n", __func__);
174in_rmo:
175 return -1;
176}
177#endif /* CONFIG_MEMORY_HOTPLUG */ 132#endif /* CONFIG_MEMORY_HOTPLUG */
178 133
179void show_mem(void) 134void show_mem(void)