diff options
| -rw-r--r-- | crypto/acompress.c | 3 | ||||
| -rw-r--r-- | drivers/crypto/caam/qi.c | 6 |
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++; |
