Re: [PATCH v4 1/2] crypto: engine - support for parallel requests
From: Herbert Xu
Date: Wed Mar 11 2020 - 23:26:16 EST
On Mon, Mar 09, 2020 at 12:51:32AM +0200, Iuliana Prodan wrote:
>
> ret = enginectx->op.do_one_request(engine, async_req);
> - if (ret) {
> - dev_err(engine->dev, "Failed to do one request from queue: %d\n", ret);
> - goto req_err;
> + can_enq_more = ret;
> + if (can_enq_more < 0) {
> + dev_err(engine->dev, "Failed to do one request from queue: %d\n",
> + ret);
> + goto req_err_1;
> + }
So this now includes the case of the hardware queue being full
and the request needs to be queued until space opens up again.
In this case, we should not do dev_err. So you need to be able
to distinguish between the hardware queue being full vs. a real
fatal error on the request (e.g., out-of-memory or some hardware
failure).
Thanks,
--
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt