From: Akihiko Odaki Date: Thu, 23 Feb 2023 10:20:15 +0000 (+0900) Subject: e1000: Count CRC in Tx statistics X-Git-Tag: qemu-xen-4.18.0-rc5^2~1^2~58 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f9f42e708f33fc54b2943b8f585d1d8f258cba49;p=qemu-xen.git e1000: Count CRC in Tx statistics The Software Developer's Manual 13.7.4.5 "Packets Transmitted (64 Bytes) Count" says: > This register counts the number of packets transmitted that are > exactly 64 bytes (from through , > inclusively) in length. It also says similar for the other Tx statistics registers. Add the number of bytes for CRC to those registers. Signed-off-by: Akihiko Odaki Signed-off-by: Jason Wang (cherry picked from commit c50b152485d4e10dfa1e1d7ea668f29a5fb92e9c) Signed-off-by: Michael Tokarev (Mjt: pick this for 7.2 too: a fix by its own and makes next patch to apply cleanly) --- diff --git a/hw/net/e1000.c b/hw/net/e1000.c index e26e0a64c1..9cd3d6f495 100644 --- a/hw/net/e1000.c +++ b/hw/net/e1000.c @@ -567,7 +567,7 @@ e1000_send_packet(E1000State *s, const uint8_t *buf, int size) qemu_send_packet(nc, buf, size); } inc_tx_bcast_or_mcast_count(s, buf); - e1000x_increase_size_stats(s->mac_reg, PTCregs, size); + e1000x_increase_size_stats(s->mac_reg, PTCregs, size + 4); } static void @@ -631,7 +631,7 @@ xmit_seg(E1000State *s) } e1000x_inc_reg_if_not_full(s->mac_reg, TPT); - e1000x_grow_8reg_if_not_full(s->mac_reg, TOTL, s->tx.size); + e1000x_grow_8reg_if_not_full(s->mac_reg, TOTL, s->tx.size + 4); s->mac_reg[GPTC] = s->mac_reg[TPT]; s->mac_reg[GOTCL] = s->mac_reg[TOTL]; s->mac_reg[GOTCH] = s->mac_reg[TOTH];