Move deleting coprocessors info upon exit or failure to
nx842_delete_coprocs().

Signed-off-by: Haren Myneni <ha...@us.ibm.com>
---
 drivers/crypto/nx/nx-842-powernv.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/drivers/crypto/nx/nx-842-powernv.c 
b/drivers/crypto/nx/nx-842-powernv.c
index 1bd19e03eb7d..67dc06f9b557 100644
--- a/drivers/crypto/nx/nx-842-powernv.c
+++ b/drivers/crypto/nx/nx-842-powernv.c
@@ -593,6 +593,16 @@ static int __init nx842_powernv_probe(struct device_node 
*dn)
        return 0;
 }
 
+static void nx842_delete_coprocs(void)
+{
+       struct nx842_coproc *coproc, *n;
+
+       list_for_each_entry_safe(coproc, n, &nx842_coprocs, list) {
+               list_del(&coproc->list);
+               kfree(coproc);
+       }
+}
+
 static struct nx842_constraints nx842_powernv_constraints = {
        .alignment =    DDE_BUFFER_ALIGN,
        .multiple =     DDE_BUFFER_LAST_MULT,
@@ -652,13 +662,7 @@ static __init int nx842_powernv_init(void)
 
        ret = crypto_register_alg(&nx842_powernv_alg);
        if (ret) {
-               struct nx842_coproc *coproc, *n;
-
-               list_for_each_entry_safe(coproc, n, &nx842_coprocs, list) {
-                       list_del(&coproc->list);
-                       kfree(coproc);
-               }
-
+               nx842_delete_coprocs();
                return ret;
        }
 
@@ -668,13 +672,8 @@ module_init(nx842_powernv_init);
 
 static void __exit nx842_powernv_exit(void)
 {
-       struct nx842_coproc *coproc, *n;
-
        crypto_unregister_alg(&nx842_powernv_alg);
 
-       list_for_each_entry_safe(coproc, n, &nx842_coprocs, list) {
-               list_del(&coproc->list);
-               kfree(coproc);
-       }
+       nx842_delete_coprocs();
 }
 module_exit(nx842_powernv_exit);
-- 
2.11.0



Reply via email to