While using acomp_req, users may customize a completion callback, if the backend of acomp is actually scomp, this callback will never be called. This looks a bit messy to users. For one user, all scomp details should be hidden by acomp APIs. But it won't cause any real problem if users simply use crypto_req_done() as the callback, and further use crypto_wait_req() to wait for request to be done since crypto_wait_req() depends on the callback only if queuing acomp_req returns -EINPROGRESS or -EBUSY. This patch will make sure the customized completion callback is called for the first case. And it won't break the second case in which users use the common crypto_req_done() and crypto_wait_req() only. Signed-off-by: Barry Song <song.bao.hua@xxxxxxxxxxxxx> --- crypto/scompress.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crypto/scompress.c b/crypto/scompress.c index 738f4f8f0f41..634b7ced9348 100644 --- a/crypto/scompress.c +++ b/crypto/scompress.c @@ -158,6 +158,10 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir) } out: spin_unlock(&scratch->lock); + + if (req->base.complete) + acomp_request_complete(req, ret); + return ret; } -- 2.27.0