]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
crypto: inside-secure - do not overwrite the threshold value
authorAntoine Tenart <antoine.tenart@bootlin.com>
Tue, 13 Feb 2018 08:26:51 +0000 (09:26 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 22 Feb 2018 14:16:23 +0000 (22:16 +0800)
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 <oferh@marvell.com>
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/inside-secure/safexcel.c

index 225e74a7f72484b008d7aa7d8cb79304b9a2f958..5cb90bcd3f18e5d9ca6c5c33fbf759f75ab6a168 100644 (file)
@@ -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;