All of lore.kernel.org
 help / color / mirror / Atom feed
From: Antoine Tenart <antoine.tenart@bootlin.com>
To: herbert@gondor.apana.org.au, davem@davemloft.net
Cc: Antoine Tenart <antoine.tenart@bootlin.com>,
	thomas.petazzoni@bootlin.com, gregory.clement@bootlin.com,
	miquel.raynal@bootlin.com, oferh@marvell.com, igall@marvell.com,
	nadavh@marvell.com, linux-crypto@vger.kernel.org
Subject: [PATCH 5/8] crypto: inside-secure - do not process request if no command was issued
Date: Tue, 13 Feb 2018 09:26:54 +0100	[thread overview]
Message-ID: <20180213082657.4759-6-antoine.tenart@bootlin.com> (raw)
In-Reply-To: <20180213082657.4759-1-antoine.tenart@bootlin.com>

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>
---
 drivers/crypto/inside-secure/safexcel.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c
index 5cb90bcd3f18..0642d7181c9e 100644
--- a/drivers/crypto/inside-secure/safexcel.c
+++ b/drivers/crypto/inside-secure/safexcel.c
@@ -490,6 +490,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);
-- 
2.14.3

  parent reply	other threads:[~2018-02-13  8:30 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-13  8:26 [PATCH 0/8] crypto: inside-secure - stabilization and fixes Antoine Tenart
2018-02-13  8:26 ` [PATCH 1/8] MAINTAINERS: update the Inside Secure maintainer email Antoine Tenart
2018-02-13  8:26 ` [PATCH 2/8] crypto: inside-secure - do not overwrite the threshold value Antoine Tenart
2018-02-13  8:26 ` [PATCH 3/8] crypto: inside-secure - fix the extra cache computation Antoine Tenart
2018-02-13  8:26 ` [PATCH 4/8] crypto: inside-secure - fix the cache_len computation Antoine Tenart
2018-02-13  8:26 ` Antoine Tenart [this message]
2018-02-13  8:26 ` [PATCH 6/8] crypto: inside-secure - fix the invalidation step during cra_exit Antoine Tenart
2018-02-13  8:26 ` [PATCH 7/8] crypto: inside-secure - keep the requests push/pop synced Antoine Tenart
2018-02-13  8:26 ` [PATCH 8/8] crypto: inside-secure - unmap the result in the hash send error path Antoine Tenart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180213082657.4759-6-antoine.tenart@bootlin.com \
    --to=antoine.tenart@bootlin.com \
    --cc=davem@davemloft.net \
    --cc=gregory.clement@bootlin.com \
    --cc=herbert@gondor.apana.org.au \
    --cc=igall@marvell.com \
    --cc=linux-crypto@vger.kernel.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=nadavh@marvell.com \
    --cc=oferh@marvell.com \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.