aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/acompress.c3
-rw-r--r--drivers/crypto/caam/qi.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/crypto/acompress.c b/crypto/acompress.c
index 70bc1fd044e446..5807b87bb50812 100644
--- a/crypto/acompress.c
+++ b/crypto/acompress.c
@@ -483,6 +483,9 @@ void crypto_acomp_free_streams(struct crypto_acomp_streams *s)
void (*free_ctx)(void *);
int i;
+ if (!streams)
+ return;
+
cancel_work_sync(&s->stream_work);
free_ctx = s->free_ctx;
diff --git a/drivers/crypto/caam/qi.c b/drivers/crypto/caam/qi.c
index 7701d00bcb3ac5..b6e7c0b29d4e6c 100644
--- a/drivers/crypto/caam/qi.c
+++ b/drivers/crypto/caam/qi.c
@@ -122,12 +122,12 @@ int caam_qi_enqueue(struct device *qidev, struct caam_drv_req *req)
qm_fd_addr_set64(&fd, addr);
do {
+ refcount_inc(&req->drv_ctx->refcnt);
ret = qman_enqueue(req->drv_ctx->req_fq, &fd);
- if (likely(!ret)) {
- refcount_inc(&req->drv_ctx->refcnt);
+ if (likely(!ret))
return 0;
- }
+ refcount_dec(&req->drv_ctx->refcnt);
if (ret != -EBUSY)
break;
num_retries++;