Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d526e85f authored by Benjamin Herrenschmidt's avatar Benjamin Herrenschmidt
Browse files

powerpc+of: Rename and fix OF reconfig notifier error inject module



This module used to inject errors in the pSeries specific dynamic
reconfiguration notifiers. Those are gone however, replaced by
generic notifiers for changes to the device-tree. So let's update
the module to deal with these instead and rename it along the way.

Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
parent 1a9bd454
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -1192,14 +1192,14 @@ config MEMORY_NOTIFIER_ERROR_INJECT

	  If unsure, say N.

config PSERIES_RECONFIG_NOTIFIER_ERROR_INJECT
	tristate "pSeries reconfig notifier error injection module"
	depends on PPC_PSERIES && NOTIFIER_ERROR_INJECTION
config OF_RECONFIG_NOTIFIER_ERROR_INJECT
	tristate "OF reconfig notifier error injection module"
	depends on OF_DYNAMIC && NOTIFIER_ERROR_INJECTION
	help
	  This option provides the ability to inject artifical errors to
	  pSeries reconfig notifier chain callbacks.  It is controlled
	  OF reconfig notifier chain callbacks.  It is controlled
	  through debugfs interface under
	  /sys/kernel/debug/notifier-error-inject/pSeries-reconfig/
	  /sys/kernel/debug/notifier-error-inject/OF-reconfig/

	  If the notifier call chain should be failed with some events
	  notified, write the error code to "actions/<notifier event>/error".
+2 −2
Original line number Diff line number Diff line
@@ -94,8 +94,8 @@ obj-$(CONFIG_NOTIFIER_ERROR_INJECTION) += notifier-error-inject.o
obj-$(CONFIG_CPU_NOTIFIER_ERROR_INJECT) += cpu-notifier-error-inject.o
obj-$(CONFIG_PM_NOTIFIER_ERROR_INJECT) += pm-notifier-error-inject.o
obj-$(CONFIG_MEMORY_NOTIFIER_ERROR_INJECT) += memory-notifier-error-inject.o
obj-$(CONFIG_PSERIES_RECONFIG_NOTIFIER_ERROR_INJECT) += \
	pSeries-reconfig-notifier-error-inject.o
obj-$(CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT) += \
	of-reconfig-notifier-error-inject.o

lib-$(CONFIG_GENERIC_BUG) += bug.o

+11 −11
Original line number Diff line number Diff line
#include <linux/kernel.h>
#include <linux/module.h>

#include <asm/pSeries_reconfig.h>
#include <linux/of.h>

#include "notifier-error-inject.h"

static int priority;
module_param(priority, int, 0);
MODULE_PARM_DESC(priority, "specify pSeries reconfig notifier priority");
MODULE_PARM_DESC(priority, "specify OF reconfig notifier priority");

static struct notifier_err_inject reconfig_err_inject = {
	.actions = {
		{ NOTIFIER_ERR_INJECT_ACTION(PSERIES_RECONFIG_ADD) },
		{ NOTIFIER_ERR_INJECT_ACTION(PSERIES_RECONFIG_REMOVE) },
		{ NOTIFIER_ERR_INJECT_ACTION(PSERIES_DRCONF_MEM_ADD) },
		{ NOTIFIER_ERR_INJECT_ACTION(PSERIES_DRCONF_MEM_REMOVE) },
		{ NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_ATTACH_NODE) },
		{ NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_DETACH_NODE) },
		{ NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_ADD_PROPERTY) },
		{ NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_REMOVE_PROPERTY) },
		{ NOTIFIER_ERR_INJECT_ACTION(OF_RECONFIG_UPDATE_PROPERTY) },
		{}
	}
};
@@ -25,12 +25,12 @@ static int err_inject_init(void)
{
	int err;

	dir = notifier_err_inject_init("pSeries-reconfig",
	dir = notifier_err_inject_init("OF-reconfig",
		notifier_err_inject_dir, &reconfig_err_inject, priority);
	if (IS_ERR(dir))
		return PTR_ERR(dir);

	err = pSeries_reconfig_notifier_register(&reconfig_err_inject.nb);
	err = of_reconfig_notifier_register(&reconfig_err_inject.nb);
	if (err)
		debugfs_remove_recursive(dir);

@@ -39,13 +39,13 @@ static int err_inject_init(void)

static void err_inject_exit(void)
{
	pSeries_reconfig_notifier_unregister(&reconfig_err_inject.nb);
	of_reconfig_notifier_unregister(&reconfig_err_inject.nb);
	debugfs_remove_recursive(dir);
}

module_init(err_inject_init);
module_exit(err_inject_exit);

MODULE_DESCRIPTION("pSeries reconfig notifier error injection module");
MODULE_DESCRIPTION("OF reconfig notifier error injection module");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Akinobu Mita <akinobu.mita@gmail.com>");