On Fri, Aug 26, 2016 at 05:53:38PM +0200, Lucas Stach wrote: > Sorry, please ignore the FEC patches. Those are test patches still > residing in my to-send folder. Sorry for the noise. This patch actually looks correct: you are indeed correct that the driver can end up with a packet sitting waiting to be received. All it will take is a correctly timed MII interrupt event with a NAPI just coming to the end of its processing. So, I'd encourage this to be applied - but obviously when sent to netdev rather than the DRI mailing list! > > Am Freitag, den 26.08.2016, 17:49 +0200 schrieb Lucas Stach: > > The FEC doesn't have a real interrupt status register, that takes > > into account the mask status of the IRQ. The driver reads the raw > > interrupt event register, which also reports events for masked > > IRQs. > > > > The driver needs to apply the current mask itself, to avoid acking > > IRQs that are currently masked, as NAPI relies on the masking to > > hide the IRQs. The current behavior of just acking all interrupts > > regardless of their mask status opens the driver up the "rotting > > packet" race-window, as described in the original NAPI-HOWTO, which > > has been observed in the wild. > > > > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > > --- > > drivers/net/ethernet/freescale/fec_main.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c > > index 01f7e811739b..498264969e89 100644 > > --- a/drivers/net/ethernet/freescale/fec_main.c > > +++ b/drivers/net/ethernet/freescale/fec_main.c > > @@ -1572,7 +1572,8 @@ fec_enet_interrupt(int irq, void *dev_id) > > uint int_events; > > irqreturn_t ret = IRQ_NONE; > > > > - int_events = readl(fep->hwp + FEC_IEVENT); > > + int_events = readl_relaxed(fep->hwp + FEC_IEVENT) & > > + readl_relaxed(fep->hwp + FEC_IMASK); > > writel(int_events, fep->hwp + FEC_IEVENT); > > fec_enet_collect_events(fep, int_events); > > > > -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up according to speedtest.net. _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel