static int pseries_memory_notifier(struct notifier_block *nb, unsigned long action, void *node) { int err = NOTIFY_OK; switch (action) { case PSERIES_RECONFIG_ADD: if (pseries_add_memory(node)) err = NOTIFY_BAD; break; case PSERIES_RECONFIG_REMOVE: if (pseries_remove_memory(node)) err = NOTIFY_BAD; break; case PSERIES_DRCONF_MEM_ADD: case PSERIES_DRCONF_MEM_REMOVE: if (pseries_drconf_memory(node, action)) err = NOTIFY_BAD; break; default: err = NOTIFY_DONE; break; } return err; }
static int pseries_memory_notifier(struct notifier_block *nb, unsigned long action, void *node) { int err = 0; switch (action) { case PSERIES_RECONFIG_ADD: err = pseries_add_memory(node); break; case PSERIES_RECONFIG_REMOVE: err = pseries_remove_memory(node); break; case PSERIES_DRCONF_MEM_ADD: case PSERIES_DRCONF_MEM_REMOVE: err = pseries_drconf_memory(node, action); break; } return notifier_from_errno(err); }
static int pseries_memory_notifier(struct notifier_block *nb, unsigned long action, void *node) { struct of_prop_reconfig *pr; int err = 0; switch (action) { case OF_RECONFIG_ATTACH_NODE: err = pseries_add_memory(node); break; case OF_RECONFIG_DETACH_NODE: err = pseries_remove_memory(node); break; case OF_RECONFIG_UPDATE_PROPERTY: pr = (struct of_prop_reconfig *)node; if (!strcmp(pr->prop->name, "ibm,dynamic-memory")) err = pseries_update_drconf_memory(pr); break; } return notifier_from_errno(err); }