powerpc/powernv: Add opal_notifier_unregister() and export to modules
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 28 Mar 2014 02:36:31 +0000 (13:36 +1100)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 7 Apr 2014 00:33:16 +0000 (10:33 +1000)
opal_notifier_register() is missing a pending "unregister" variant
and should be exposed to modules.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/opal.h
arch/powerpc/platforms/powernv/opal.c

index fe2aa0b48d2b00e43e47212ddb55ce6c5142537f..6fb5f90e6464b1e40762f3b99a981d6e2a5a7b5a 100644 (file)
@@ -892,6 +892,8 @@ extern int early_init_dt_scan_opal(unsigned long node, const char *uname,
                                   int depth, void *data);
 
 extern int opal_notifier_register(struct notifier_block *nb);
+extern int opal_notifier_unregister(struct notifier_block *nb);
+
 extern int opal_message_notifier_register(enum OpalMessageType msg_type,
                                                struct notifier_block *nb);
 extern void opal_notifier_enable(void);
index e92f2f67640f7db39e18d78ccbb08d6ad12eed7e..7835d5bb973f765ace40e81073593439c2dedfe9 100644 (file)
@@ -180,6 +180,20 @@ int opal_notifier_register(struct notifier_block *nb)
        atomic_notifier_chain_register(&opal_notifier_head, nb);
        return 0;
 }
+EXPORT_SYMBOL_GPL(opal_notifier_register);
+
+int opal_notifier_unregister(struct notifier_block *nb)
+{
+       if (!nb) {
+               pr_warning("%s: Invalid argument (%p)\n",
+                          __func__, nb);
+               return -EINVAL;
+       }
+
+       atomic_notifier_chain_unregister(&opal_notifier_head, nb);
+       return 0;
+}
+EXPORT_SYMBOL_GPL(opal_notifier_unregister);
 
 static void opal_do_notifier(uint64_t events)
 {