提交 5eb0cc66 编写于 作者: A Antoine Ténart 提交者: Herbert Xu

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: NAntoine Tenart <antoine.tenart@free-electrons.com>
Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
上级 b1deb47a
...@@ -429,6 +429,8 @@ void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring) ...@@ -429,6 +429,8 @@ void safexcel_dequeue(struct safexcel_crypto_priv *priv, int ring)
struct safexcel_request *request; struct safexcel_request *request;
int ret, nreq = 0, cdesc = 0, rdesc = 0, commands, results; int ret, nreq = 0, cdesc = 0, rdesc = 0, commands, results;
priv->ring[ring].need_dequeue = false;
do { do {
spin_lock_bh(&priv->ring[ring].queue_lock); spin_lock_bh(&priv->ring[ring].queue_lock);
backlog = crypto_get_backlog(&priv->ring[ring].queue); backlog = crypto_get_backlog(&priv->ring[ring].queue);
...@@ -631,10 +633,8 @@ static void safexcel_handle_result_work(struct work_struct *work) ...@@ -631,10 +633,8 @@ static void safexcel_handle_result_work(struct work_struct *work)
safexcel_handle_result_descriptor(priv, data->ring); safexcel_handle_result_descriptor(priv, data->ring);
if (priv->ring[data->ring].need_dequeue) { if (priv->ring[data->ring].need_dequeue)
priv->ring[data->ring].need_dequeue = false;
safexcel_dequeue(data->priv, data->ring); safexcel_dequeue(data->priv, data->ring);
}
} }
struct safexcel_ring_irq_data { struct safexcel_ring_irq_data {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册