]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/faraday/ftgmac100.c
ftgmac100: Fix potential ordering issue in NAPI poll
[karo-tx-linux.git] / drivers / net / ethernet / faraday / ftgmac100.c
index 45b8267b81b7ccf142609a99123fff131e1b8158..95bf5e89cfd17b30d3543b33cb069f8aaee69d31 100644 (file)
@@ -1349,6 +1349,13 @@ static int ftgmac100_poll(struct napi_struct *napi, int budget)
                 */
                iowrite32(FTGMAC100_INT_RXTX,
                          priv->base + FTGMAC100_OFFSET_ISR);
+
+               /* Push the above (and provides a barrier vs. subsequent
+                * reads of the descriptor).
+                */
+               ioread32(priv->base + FTGMAC100_OFFSET_ISR);
+
+               /* Check RX and TX descriptors for more work to do */
                if (ftgmac100_check_rx(priv) ||
                    ftgmac100_tx_buf_cleanable(priv))
                        return budget;