mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
crypto: inside-secure - do not process request if no command was issued
This patch adds a check in the SafeXcel dequeue function, to avoid
processing request further if no hardware command was issued. This can
happen in certain cases where the ->send() function caches all the data
that would have been send.
Fixes: 809778e02c
("crypto: inside-secure - fix hash when length is a multiple of a block")
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
666a9c70b0
commit
95831ceafc
1 changed files with 9 additions and 0 deletions
|
@ -490,6 +490,15 @@ handle_req:
|
||||||
if (backlog)
|
if (backlog)
|
||||||
backlog->complete(backlog, -EINPROGRESS);
|
backlog->complete(backlog, -EINPROGRESS);
|
||||||
|
|
||||||
|
/* In case the send() helper did not issue any command to push
|
||||||
|
* to the engine because the input data was cached, continue to
|
||||||
|
* dequeue other requests as this is valid and not an error.
|
||||||
|
*/
|
||||||
|
if (!commands && !results) {
|
||||||
|
kfree(request);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
spin_lock_bh(&priv->ring[ring].egress_lock);
|
spin_lock_bh(&priv->ring[ring].egress_lock);
|
||||||
list_add_tail(&request->list, &priv->ring[ring].list);
|
list_add_tail(&request->list, &priv->ring[ring].list);
|
||||||
spin_unlock_bh(&priv->ring[ring].egress_lock);
|
spin_unlock_bh(&priv->ring[ring].egress_lock);
|
||||||
|
|
Loading…
Add table
Reference in a new issue