Fix memory leak when device does not support crypto.

Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: Harsh Jain <ha...@chelsio.com>
---
 drivers/crypto/chelsio/chcr_core.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/chelsio/chcr_core.c 
b/drivers/crypto/chelsio/chcr_core.c
index b6dd9cb..4f677b3 100644
--- a/drivers/crypto/chelsio/chcr_core.c
+++ b/drivers/crypto/chelsio/chcr_core.c
@@ -154,15 +154,15 @@ static void *chcr_uld_add(const struct cxgb4_lld_info 
*lld)
        struct uld_ctx *u_ctx;
 
        /* Create the device and add it in the device list */
+       if (!(lld->ulp_crypto & ULP_CRYPTO_LOOKASIDE))
+               return ERR_PTR(-EOPNOTSUPP);
+
+       /* Create the device and add it in the device list */
        u_ctx = kzalloc(sizeof(*u_ctx), GFP_KERNEL);
        if (!u_ctx) {
                u_ctx = ERR_PTR(-ENOMEM);
                goto out;
        }
-       if (!(lld->ulp_crypto & ULP_CRYPTO_LOOKASIDE)) {
-               u_ctx = ERR_PTR(-ENOMEM);
-               goto out;
-       }
        u_ctx->lldi = *lld;
 out:
        return u_ctx;
-- 
2.1.4

Reply via email to