From: Antoine Tenart Date: Tue, 13 Feb 2018 08:26:51 +0000 (+0100) Subject: crypto: inside-secure - do not overwrite the threshold value X-Git-Tag: for-linus-20180413~44^2~170 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=e1d24c0bb76648cdf789b168defb6e31adb0b1b1;p=linux-block.git 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: dc7e28a3286e ("crypto: inside-secure - dequeue all requests at once") Suggested-by: Ofer Heifetz Signed-off-by: Antoine Tenart Signed-off-by: Herbert Xu --- diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c index 225e74a7f724..5cb90bcd3f18 100644 --- a/drivers/crypto/inside-secure/safexcel.c +++ b/drivers/crypto/inside-secure/safexcel.c @@ -514,8 +514,7 @@ finalize: if (!priv->ring[ring].busy) { 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;