Re: [PATCH 3/3] ppc64-specific memory notifier support
From: Nathan Lynch <hidden>
Date: 2008-03-04 00:12:03
Michael Ellerman wrote:
On Thu, 2008-02-28 at 08:46 -0800, Badari Pulavarty wrote:quoted
Hotplug memory notifier for ppc64. This gets invoked by writing the device-node that needs to be removed to /proc/ppc64/ofdt. We need to adjust the sections and remove sysfs entries by calling __remove_pages(). Then call arch specific code to get rid of htab mappings for the section of memory. Signed-off-by: Badari Pulavarty <redacted> --- arch/powerpc/platforms/pseries/Makefile | 1 arch/powerpc/platforms/pseries/hotplug-memory.c | 98 ++++++++++++++++++++++++ 2 files changed, 99 insertions(+) Index: linux-2.6.25-rc2/arch/powerpc/platforms/pseries/hotplug-memory.c ===================================================================--- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6.25-rc2/arch/powerpc/platforms/pseries/hotplug-memory.c 2008-02-28 08:20:14.000000000 -0800quoted
+ +static struct notifier_block pseries_smp_nb = { + .notifier_call = pseries_memory_notifier, +}; + +static int __init pseries_memory_hotplug_init(void) +{ + if (firmware_has_feature(FW_FEATURE_LPAR)) + pSeries_reconfig_notifier_register(&pseries_smp_nb); + + return 0; +} +arch_initcall(pseries_memory_hotplug_init);This is going to fire on non-pseries LPAR platforms, like iSeries and PS3. Which is not what you want I think.
Well, the notifier will be registered, yes, but it will never be called because that path is reachable only from a write to /proc/ppc64/ofdt, which is not created on non-pseries. Maybe it should be machine_device_initcall(pseries, pseries_memory_hotplug_init); (and pseries_cpu_hotplug_init in hotplug-cpu.c should be changed to machine_arch_initcall)