提交 e1d24c0b 编写于 作者: A Antoine Tenart 提交者: Herbert Xu

crypto: inside-secure - do not overwrite the threshold value

This patch fixes the Inside Secure SafeXcel driver not to overwrite the
interrupt threshold value. In certain cases the value of this register,
which controls when to fire an interrupt, was overwritten. This lead to
packet not being processed or acked as the driver never was aware of
their completion.

This patch fixes this behaviour by not setting the threshold when
requests are being processed by the engine.

Fixes: dc7e28a3 ("crypto: inside-secure - dequeue all requests at once")
Suggested-by: NOfer Heifetz <oferh@marvell.com>
Signed-off-by: NAntoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
上级 c4ecc8f0
...@@ -514,8 +514,7 @@ void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring) ...@@ -514,8 +514,7 @@ void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring)
if (!priv->ring[ring].busy) { if (!priv->ring[ring].busy) {
nreq -= safexcel_try_push_requests(priv, ring, nreq); nreq -= safexcel_try_push_requests(priv, ring, nreq);
if (nreq) priv->ring[ring].busy = true;
priv->ring[ring].busy = true;
} }
priv->ring[ring].requests_left += nreq; priv->ring[ring].requests_left += nreq;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册