crypto: inside-secure - do not process request if no command was issued
[ Upstream commit 95831ceafc0de7d94a5fe86ebb1c2042317cc2cd ] 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: 809778e02cd4 ("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> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
41b6f0ffb3
commit
a04b30fd74
@ -462,6 +462,15 @@ void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring)
|
||||
if (backlog)
|
||||
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);
|
||||
list_add_tail(&request->list, &priv->ring[ring].list);
|
||||
spin_unlock_bh(&priv->ring[ring].egress_lock);
|
||||
|
Loading…
x
Reference in New Issue
Block a user