From: Vladimir Oltean <vladimir.olt...@nxp.com>

This procedure should yield the same effect as manually reading out the
extraction data just to discard it.

Signed-off-by: Vladimir Oltean <vladimir.olt...@nxp.com>
---
Changes in v3:
None.

Changes in v2:
Patch is new.

 drivers/net/ethernet/mscc/ocelot_vsc7514.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mscc/ocelot_vsc7514.c 
b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
index d4cf6eeff3c9..76fa681b41f4 100644
--- a/drivers/net/ethernet/mscc/ocelot_vsc7514.c
+++ b/drivers/net/ethernet/mscc/ocelot_vsc7514.c
@@ -701,9 +701,10 @@ static irqreturn_t ocelot_xtr_irq_handler(int irq, void 
*arg)
                dev->stats.rx_packets++;
        }
 
-       if (err < 0)
-               while (ocelot_read(ocelot, QS_XTR_DATA_PRESENT) & BIT(grp))
-                       ocelot_read_rix(ocelot, QS_XTR_RD, grp);
+       if (err < 0) {
+               ocelot_write(ocelot, QS_XTR_FLUSH, BIT(grp));
+               ocelot_write(ocelot, QS_XTR_FLUSH, 0);
+       }
 
        return IRQ_HANDLED;
 }
-- 
2.25.1

Reply via email to