crypto: ixp4xx - Add missing npe_c release in error branches
authorQuentin Lambert <lambert.quentin@gmail.com>
Fri, 22 Jul 2016 13:32:41 +0000 (15:32 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 9 Aug 2016 10:47:03 +0000 (18:47 +0800)
Most error branches following the call to npe_request contain a call to
npe_request. This patch add a call to npe_release to error branches
following the call to npe_request that do not have it.

This issue was found with Hector.

Signed-off-by: Quentin Lambert <lambert.quentin@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ixp4xx_crypto.c

index a6ab2575df289bf8c11fde60b320685ebd9dff4d..7868765a70c5f8d780dfea9bb1f6057348be170f 100644 (file)
@@ -448,7 +448,7 @@ static int init_ixp_crypto(struct device *dev)
        if (!npe_running(npe_c)) {
                ret = npe_load_firmware(npe_c, npe_name(npe_c), dev);
                if (ret)
-                       return ret;
+                       goto npe_release;
                if (npe_recv_message(npe_c, msg, "STATUS_MSG"))
                        goto npe_error;
        } else {
@@ -472,7 +472,8 @@ static int init_ixp_crypto(struct device *dev)
        default:
                printk(KERN_ERR "Firmware of %s lacks crypto support\n",
                        npe_name(npe_c));
-               return -ENODEV;
+               ret = -ENODEV;
+               goto npe_release;
        }
        /* buffer_pool will also be used to sometimes store the hmac,
         * so assure it is large enough
@@ -511,6 +512,7 @@ npe_error:
 err:
        dma_pool_destroy(ctx_pool);
        dma_pool_destroy(buffer_pool);
+npe_release:
        npe_release(npe_c);
        return ret;
 }