mirror of https://github.com/hak5/openwrt.git
Revert "ramips: ethernet: fix to interrupt handling"
This reverts commit 7ac454014a
.
The change reportedly causes regressions in ethernet performance.
Fixes: FS#3332
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
openwrt-19.07
parent
29b4104d69
commit
34a9652904
|
@ -876,8 +876,6 @@ static int fe_poll_rx(struct napi_struct *napi, int budget,
|
||||||
struct fe_rx_dma *rxd, trxd;
|
struct fe_rx_dma *rxd, trxd;
|
||||||
int done = 0, pad;
|
int done = 0, pad;
|
||||||
|
|
||||||
fe_reg_w32(rx_intr, FE_REG_FE_INT_STATUS);
|
|
||||||
|
|
||||||
if (netdev->features & NETIF_F_RXCSUM)
|
if (netdev->features & NETIF_F_RXCSUM)
|
||||||
checksum_bit = soc->checksum_bit;
|
checksum_bit = soc->checksum_bit;
|
||||||
else
|
else
|
||||||
|
@ -970,6 +968,9 @@ release_desc:
|
||||||
done++;
|
done++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (done < budget)
|
||||||
|
fe_reg_w32(rx_intr, FE_REG_FE_INT_STATUS);
|
||||||
|
|
||||||
return done;
|
return done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -985,8 +986,6 @@ static int fe_poll_tx(struct fe_priv *priv, int budget, u32 tx_intr,
|
||||||
u32 idx, hwidx;
|
u32 idx, hwidx;
|
||||||
struct fe_tx_ring *ring = &priv->tx_ring;
|
struct fe_tx_ring *ring = &priv->tx_ring;
|
||||||
|
|
||||||
fe_reg_w32(tx_intr, FE_REG_FE_INT_STATUS);
|
|
||||||
|
|
||||||
idx = ring->tx_free_idx;
|
idx = ring->tx_free_idx;
|
||||||
hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0);
|
hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0);
|
||||||
|
|
||||||
|
@ -1010,7 +1009,9 @@ static int fe_poll_tx(struct fe_priv *priv, int budget, u32 tx_intr,
|
||||||
if (idx == hwidx) {
|
if (idx == hwidx) {
|
||||||
/* read hw index again make sure no new tx packet */
|
/* read hw index again make sure no new tx packet */
|
||||||
hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0);
|
hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0);
|
||||||
if (idx != hwidx)
|
if (idx == hwidx)
|
||||||
|
fe_reg_w32(tx_intr, FE_REG_FE_INT_STATUS);
|
||||||
|
else
|
||||||
*tx_again = 1;
|
*tx_again = 1;
|
||||||
} else {
|
} else {
|
||||||
*tx_again = 1;
|
*tx_again = 1;
|
||||||
|
|
Loading…
Reference in New Issue