: LMB small bug fix and debugging tidy up.
Subsystems (2)
cover : LMB small bug fix and debugging tidy up.
While diagnosing Mikael's bug where half of his RAM disappeared in 2.6.26-rc2 I found one bug (which I don't think fixes his problem, but waiting for an updated set of debugging logs from him) and an improvement to the debugging provided by the current LMB code.
RFC PATCH 1/1 memory_hotplug: Check for walk_memory_resource() failure in online_pages()
Add a check to online_pages() to test for failure of walk_memory_resource(). This fixes a condition where a failure of walk_memory_resource() can lead to online_pages() returning success without the requested pages being onlined.
Signed-off-by Geoff Levand <[email protected]>
---
I'm not entirely sure this is the proper way to handle this condition. Comments welcome.
mm/memory_hotplug.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
mm/memory_hotplug.c +8 -1
@@ -408,8 +408,15 @@ int online_pages(unsigned long pfn, unsiif (!populated_zone (zone)) need_zonelists_rebuild =1 ; -walk_memory_resource (pfn, nr_pages, &onlined_pages, + ret =walk_memory_resource (pfn, nr_pages, &onlined_pages, online_pages_range); +if (ret) { +printk (KERN_DEBUG "online_pages %lx at %lx failed\n" , + nr_pages, pfn); +memory_notify (MEM_CANCEL_ONLINE , &arg); +return ret; + } + zone->present_pages += onlined_pages; zone->zone_pgdat->node_present_pages += onlined_pages;