mpic_init_sys() currently doesn't check whether
subsys_system_register() succeeded or not. Check the return code of
subsys_system_register() and clean up if there's an error.

Signed-off-by: Andrew Donnellan <andrew.donnel...@au1.ibm.com>

---

Found by Coverity Scan. Build-tested only.
---
 arch/powerpc/sysdev/mpic.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index afe3c7c..7de45b2 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -2004,8 +2004,15 @@ static struct syscore_ops mpic_syscore_ops = {
 
 static int mpic_init_sys(void)
 {
+       int rc;
+
        register_syscore_ops(&mpic_syscore_ops);
-       subsys_system_register(&mpic_subsys, NULL);
+       rc = subsys_system_register(&mpic_subsys, NULL);
+       if (rc) {
+               unregister_syscore_ops(&mpic_syscore_ops);
+               pr_err("mpic: Failed to register subsystem!\n");
+               return rc;
+       }
 
        return 0;
 }
-- 
Andrew Donnellan              OzLabs, ADL Canberra
andrew.donnel...@au1.ibm.com  IBM Australia Limited

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to