net: xilinx_ethlite: Fix Rx-pong interrupt There is no CTRL_I bit in the pong buffer control register. The CTRL_I bit from the ping buffer masks both ping and pong buffers. Fix. Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
diff --git a/hw/net/xilinx_ethlite.c b/hw/net/xilinx_ethlite.c index 5a434f6..1b177b3 100644 --- a/hw/net/xilinx_ethlite.c +++ b/hw/net/xilinx_ethlite.c
@@ -196,8 +196,9 @@ memcpy(&s->regs[rxbase + R_RX_BUF0], buf, size); s->regs[rxbase + R_RX_CTRL0] |= CTRL_S; - if (s->regs[rxbase + R_RX_CTRL0] & CTRL_I) + if (s->regs[R_RX_CTRL0] & CTRL_I) { eth_pulse_irq(s); + } /* If c_rx_pingpong was set flip buffers. */ s->rxbuf ^= s->c_rx_pingpong;