diff mbox series

e1000: Never increment the RX undersize count register

Message ID 1554391286-26981-1-git-send-email-mark.kanda@oracle.com (mailing list archive)
State New, archived
Headers show
Series e1000: Never increment the RX undersize count register | expand

Commit Message

Mark Kanda April 4, 2019, 3:21 p.m. UTC
From: Chris Kenna <chris.kenna@oracle.com>

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>
Signed-off-by: Chris Kenna <chris.kenna@oracle.com>
---
 hw/net/e1000.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Stefano Garzarella April 5, 2019, 10:31 a.m. UTC | #1
On Thu, Apr 04, 2019 at 10:21:26AM -0500, Mark Kanda wrote:
> From: Chris Kenna <chris.kenna@oracle.com>
> 
> 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>
> Signed-off-by: Chris Kenna <chris.kenna@oracle.com>
> ---
>  hw/net/e1000.c | 1 -
>  1 file changed, 1 deletion(-)

CCing Jason.

LGTM, if we don't discard it, we shouldn't increase the RUC counter.

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>

Thanks,
Stefano
Jason Wang April 15, 2019, 3:29 a.m. UTC | #2
On 2019/4/5 下午6:31, Stefano Garzarella wrote:
> On Thu, Apr 04, 2019 at 10:21:26AM -0500, Mark Kanda wrote:
>> From: Chris Kenna <chris.kenna@oracle.com>
>>
>> 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>
>> Signed-off-by: Chris Kenna <chris.kenna@oracle.com>
>> ---
>>   hw/net/e1000.c | 1 -
>>   1 file changed, 1 deletion(-)
> CCing Jason.
>
> LGTM, if we don't discard it, we shouldn't increase the RUC counter.
>
> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>
> Thanks,
> Stefano
>

Applied.

Thanks
Jason Wang April 15, 2019, 3:35 a.m. UTC | #3
On 2019/4/15 上午11:29, Jason Wang wrote:
>
> On 2019/4/5 下午6:31, Stefano Garzarella wrote:
>> On Thu, Apr 04, 2019 at 10:21:26AM -0500, Mark Kanda wrote:
>>> From: Chris Kenna <chris.kenna@oracle.com>
>>>
>>> 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>
>>> Signed-off-by: Chris Kenna <chris.kenna@oracle.com>
>>> ---
>>>   hw/net/e1000.c | 1 -
>>>   1 file changed, 1 deletion(-)
>> CCing Jason.
>>
>> LGTM, if we don't discard it, we shouldn't increase the RUC counter.
>>
>> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
>>
>> Thanks,
>> Stefano
>>
>
> Applied.
>
> Thanks


Actually queued for 4.1 consider it was not a series issue.

Thanks
diff mbox series

Patch

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;