if (err)
                caam_jr_strstatus(jrdev, err);
 
-#ifdef DEBUG
-       print_hex_dump(KERN_ERR, "dstiv  @"__stringify(__LINE__)": ",
-                      DUMP_PREFIX_ADDRESS, 16, 4, req->iv,
-                      edesc->src_nents > 1 ? 100 : ivsize, 1);
-#endif
-       caam_dump_sg(KERN_ERR, "dst    @" __stringify(__LINE__)": ",
-                    DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
-                    edesc->dst_nents > 1 ? 100 : req->cryptlen, 1);
-
        skcipher_unmap(jrdev, edesc, req);
 
        /*
                scatterwalk_map_and_copy(req->iv, req->dst, req->cryptlen -
                                         ivsize, ivsize, 0);
 
+#ifdef DEBUG
+       print_hex_dump(KERN_ERR, "dstiv  @"__stringify(__LINE__)": ",
+                      DUMP_PREFIX_ADDRESS, 16, 4, req->iv,
+                      edesc->src_nents > 1 ? 100 : ivsize, 1);
+#endif
+       caam_dump_sg(KERN_ERR, "dst    @" __stringify(__LINE__)": ",
+                    DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
+                    edesc->dst_nents > 1 ? 100 : req->cryptlen, 1);
+
        kfree(edesc);
 
        skcipher_request_complete(req, err);
        if (err)
                caam_jr_strstatus(jrdev, err);
 
+       skcipher_unmap(jrdev, edesc, req);
+
 #ifdef DEBUG
        print_hex_dump(KERN_ERR, "dstiv  @"__stringify(__LINE__)": ",
                       DUMP_PREFIX_ADDRESS, 16, 4, req->iv, ivsize, 1);
                     DUMP_PREFIX_ADDRESS, 16, 4, req->dst,
                     edesc->dst_nents > 1 ? 100 : req->cryptlen, 1);
 
-       skcipher_unmap(jrdev, edesc, req);
        kfree(edesc);
 
        skcipher_request_complete(req, err);