aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Kenna <chris.kenna@oracle.com>2019-04-04 10:21:26 -0500
committerJason Wang <jasowang@redhat.com>2019-05-17 17:00:12 +0800
commit427ceb0fecf7afcfd76ae65f7197188b2842d385 (patch)
tree70d6931599929a0f57c3ee18734facab652c9bfb
parent23bfaf77fa801ba30bb136de7cec47728eb02f4b (diff)
downloadqemu-427ceb0fecf7afcfd76ae65f7197188b2842d385.zip
qemu-427ceb0fecf7afcfd76ae65f7197188b2842d385.tar.gz
qemu-427ceb0fecf7afcfd76ae65f7197188b2842d385.tar.bz2
e1000: Never increment the RX undersize count register
In situations where e1000 receives an undersized Ethernet frame, QEMU increments the emulated "Receive Undersize Count (RUC)" register when padding the frame. This is incorrect because this an expected scenario (e.g. with VLAN tag stripping) and not an error. As such, QEMU should not increment the emulated RUC. Fixes: 3b2743017749 ("e1000: Implementing various counters") Reviewed-by: Mark Kanda <mark.kanda@oracle.com> Reviewed-by: Bhavesh Davda <bhavesh.davda@oracle.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Chris Kenna <chris.kenna@oracle.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
-rw-r--r--hw/net/e1000.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index 9b39bcc..121452d 100644
--- a/hw/net/e1000.c
+++ b/hw/net/e1000.c
@@ -901,7 +901,6 @@ e1000_receive_iov(NetClientState *nc, const struct iovec *iov, int iovcnt)
if (size < sizeof(min_buf)) {
iov_to_buf(iov, iovcnt, 0, min_buf, size);
memset(&min_buf[size], 0, sizeof(min_buf) - size);
- e1000x_inc_reg_if_not_full(s->mac_reg, RUC);
min_iov.iov_base = filter_buf = min_buf;
min_iov.iov_len = size = sizeof(min_buf);
iovcnt = 1;