Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5eb0cc66 authored by Antoine Tenart's avatar Antoine Tenart Committed by Herbert Xu
Browse files

crypto: inside-secure - only dequeue when needed



This force the need_dequeue flag to be unset whenever the dequeue
function is called, to avoid calling it when it is not necessary.

Signed-off-by: default avatarAntoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent b1deb47a
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -429,6 +429,8 @@ void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring)
	struct safexcel_request *request;
	int ret, nreq = 0, cdesc = 0, rdesc = 0, commands, results;

	priv->ring[ring].need_dequeue = false;

	do {
		spin_lock_bh(&priv->ring[ring].queue_lock);
		backlog = crypto_get_backlog(&priv->ring[ring].queue);
@@ -631,11 +633,9 @@ static void safexcel_handle_result_work(struct work_struct *work)

	safexcel_handle_result_descriptor(priv, data->ring);

	if (priv->ring[data->ring].need_dequeue) {
		priv->ring[data->ring].need_dequeue = false;
	if (priv->ring[data->ring].need_dequeue)
		safexcel_dequeue(data->priv, data->ring);
}
}

struct safexcel_ring_irq_data {
	struct safexcel_crypto_priv *priv;