mirror of https://gitee.com/openkylin/linux.git
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: Antoine Tenart <antoine.tenart@free-electrons.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
b1deb47ad1
commit
5eb0cc66f3
|
@ -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,11 +633,9 @@ 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 {
|
||||||
struct safexcel_crypto_priv *priv;
|
struct safexcel_crypto_priv *priv;
|
||||||
|
|
Loading…
Reference in New Issue