[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v1 2/3] xilinx_ethlite: Flush queued packets on SW s
From: |
Peter Crosthwaite |
Subject: |
[Qemu-devel] [PATCH v1 2/3] xilinx_ethlite: Flush queued packets on SW service |
Date: |
Sat, 26 Jan 2013 12:36:23 -0800 |
Software services a received packet by clearing the CTRL_S bit in the RX_CTRLn
register. If this bit is cleared, flush any packets queued for the device.
Reported-by: John Williams <address@hidden>
Signed-off-by: Peter Crosthwaite <address@hidden>
---
hw/xilinx_ethlite.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/hw/xilinx_ethlite.c b/hw/xilinx_ethlite.c
index 972b85e..9463e92 100644
--- a/hw/xilinx_ethlite.c
+++ b/hw/xilinx_ethlite.c
@@ -135,11 +135,14 @@ eth_write(void *opaque, hwaddr addr,
break;
/* Keep these native. */
+ case R_RX_CTRL0:
+ case R_RX_CTRL1:
+ if (!(value & CTRL_S)) {
+ qemu_flush_queued_packets(&s->nic->nc);
+ }
case R_TX_LEN0:
case R_TX_LEN1:
case R_TX_GIE0:
- case R_RX_CTRL0:
- case R_RX_CTRL1:
D(qemu_log("%s addr=%x val=%x\n", __func__, addr * 4, value));
s->regs[addr] = value;
break;
--
1.7.12.1.396.g16eed7c
- [Qemu-devel] [PATCH v1 2/3] xilinx_ethlite: Flush queued packets on SW service,
Peter Crosthwaite <=