mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 10:35:04 +07:00
net: stmmac: use __napi_schedule() for PREEMPT_RT
[ Upstream commit 1f02efd1bb35bee95feed6aab46d1217f29d555b ]
Use of __napi_schedule_irqoff() is not safe with PREEMPT_RT in which
hard interrupts are not disabled while running the threaded interrupt.
Using __napi_schedule() works for both PREEMPT_RT and mainline Linux,
just at the cost of an additional check if interrupts are disabled for
mainline (since they are already disabled).
Similar to the fix done for enetc commit 215602a8d2
("enetc: use
napi_schedule to be compatible with PREEMPT_RT")
Signed-off-by: Seb Laveze <sebastien.laveze@nxp.com>
Link: https://lore.kernel.org/r/20210112140121.1487619-1-sebastien.laveze@oss.nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6f3fe96a69
commit
65accf0324
@ -2158,7 +2158,7 @@ static int stmmac_napi_check(struct stmmac_priv *priv, u32 chan)
|
||||
spin_lock_irqsave(&ch->lock, flags);
|
||||
stmmac_disable_dma_irq(priv, priv->ioaddr, chan, 1, 0);
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
__napi_schedule_irqoff(&ch->rx_napi);
|
||||
__napi_schedule(&ch->rx_napi);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2167,7 +2167,7 @@ static int stmmac_napi_check(struct stmmac_priv *priv, u32 chan)
|
||||
spin_lock_irqsave(&ch->lock, flags);
|
||||
stmmac_disable_dma_irq(priv, priv->ioaddr, chan, 0, 1);
|
||||
spin_unlock_irqrestore(&ch->lock, flags);
|
||||
__napi_schedule_irqoff(&ch->tx_napi);
|
||||
__napi_schedule(&ch->tx_napi);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user