On Tue, 27 Oct 2020 23:54:53 +0100 Sebastian Andrzej Siewior wrote: > The driver uses in_irq() + in_serving_softirq() magic to decide if NAPI > scheduling is required or packet processing. > > The usage of in_*() in drivers is phased out and Linus clearly requested > that code which changes behaviour depending on context should either be > seperated or the context be conveyed in an argument passed by the caller, > which usually knows the context. > > Use the `napi' argument passed by the callback. It is set true if > called from the interrupt handler and NAPI should be scheduled. > > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > Cc: "Horia Geantă" <horia.geanta@xxxxxxx> > Cc: Aymen Sghaier <aymen.sghaier@xxxxxxx> > Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > Cc: Madalin Bucur <madalin.bucur@xxxxxxx> > Cc: Jakub Kicinski <kuba@xxxxxxxxxx> > Cc: Li Yang <leoyang.li@xxxxxxx> > Cc: linux-crypto@xxxxxxxxxxxxxxx > Cc: netdev@xxxxxxxxxxxxxxx > Cc: linuxppc-dev@xxxxxxxxxxxxxxxx > Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx > --- > drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c > index 27835310b718e..2c949acd74c67 100644 > --- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c > +++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c > @@ -2300,9 +2300,9 @@ static void dpaa_tx_conf(struct net_device *net_dev, > } > > static inline int dpaa_eth_napi_schedule(struct dpaa_percpu_priv *percpu_priv, > - struct qman_portal *portal) > + struct qman_portal *portal, bool napi) > { > - if (unlikely(in_irq() || !in_serving_softirq())) { > + if (napi) { > /* Disable QMan IRQ and invoke NAPI */ > qman_p_irqsource_remove(portal, QM_PIRQ_DQRI); > Nit: some networking drivers have a bool napi which means "are we running in napi context", the semantics here feel a little backwards, at least to me. But if I'm the only one thinking this, so be it.