mirror of
https://github.com/torvalds/linux.git
synced 2024-10-30 08:42:47 +00:00
mlx4: mlx4_en_low_latency_recv() called with BH disabled
mlx4_en_low_latency_recv() is called with BH disabled, as other ndo_busy_poll() methods. No need for spin_lock_bh()/spin_unlock_bh() Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
52bd2d62ce
commit
5865316c9d
@ -660,11 +660,12 @@ static inline bool mlx4_en_cq_unlock_napi(struct mlx4_en_cq *cq)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* called from mlx4_en_low_latency_poll() */
|
||||
/* called from mlx4_en_low_latency_recv(), BH are disabled */
|
||||
static inline bool mlx4_en_cq_lock_poll(struct mlx4_en_cq *cq)
|
||||
{
|
||||
int rc = true;
|
||||
spin_lock_bh(&cq->poll_lock);
|
||||
|
||||
spin_lock(&cq->poll_lock);
|
||||
if ((cq->state & MLX4_CQ_LOCKED)) {
|
||||
struct net_device *dev = cq->dev;
|
||||
struct mlx4_en_priv *priv = netdev_priv(dev);
|
||||
@ -676,7 +677,7 @@ static inline bool mlx4_en_cq_lock_poll(struct mlx4_en_cq *cq)
|
||||
} else
|
||||
/* preserve yield marks */
|
||||
cq->state |= MLX4_EN_CQ_STATE_POLL;
|
||||
spin_unlock_bh(&cq->poll_lock);
|
||||
spin_unlock(&cq->poll_lock);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@ -684,13 +685,14 @@ static inline bool mlx4_en_cq_lock_poll(struct mlx4_en_cq *cq)
|
||||
static inline bool mlx4_en_cq_unlock_poll(struct mlx4_en_cq *cq)
|
||||
{
|
||||
int rc = false;
|
||||
spin_lock_bh(&cq->poll_lock);
|
||||
|
||||
spin_lock(&cq->poll_lock);
|
||||
WARN_ON(cq->state & (MLX4_EN_CQ_STATE_NAPI));
|
||||
|
||||
if (cq->state & MLX4_EN_CQ_STATE_POLL_YIELD)
|
||||
rc = true;
|
||||
cq->state = MLX4_EN_CQ_STATE_IDLE;
|
||||
spin_unlock_bh(&cq->poll_lock);
|
||||
spin_unlock(&cq->poll_lock);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user