Message ID | 20210112140121.1487619-1-sebastien.laveze@oss.nxp.com |
---|---|
State | New |
Headers | show |
Series | [net] net: stmmac: use __napi_schedule() for PREEMPT_RT | expand |
On Tue, 12 Jan 2021 15:01:22 +0100 Sebastien Laveze wrote: > From: Seb Laveze <sebastien.laveze@nxp.com> > > 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: > 215602a8d212 ("enetc: use napi_schedule to be compatible with PREEMPT_RT") > > Signed-off-by: Seb Laveze <sebastien.laveze@nxp.com> Fixed up the commit message to appease checkpatch and applied, thanks!
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 5b1c12ff98c0..2d90d6856ec5 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2184,7 +2184,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); } } @@ -2193,7 +2193,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); } }