|Subject:||Re: [Qemu-devel] [PATCH] only check RCTL_EN in e1000_can_receive()|
|Date:||Wed, 06 Aug 2008 09:13:15 -0500|
|User-agent:||Thunderbird 220.127.116.11 (X11/20080501)|
Charles Duffy wrote:
e1000_receive() has code to raise a receive overflow interrupt when the receive buffer head and tail match. However, with the present implementation of e1000_can_receive(), this code is unreachable -- and etherboot breaks as a result.The attached quick-and-dirty patch fixes etherboot for e1000, and does not appear to break post-boot functionality.
While this is a legitimate bug, it's probably only present in KVM or when using the slirp rate limiting. Right in QEMU, a can_receive handler for a network card is largely ignored whereas in KVM, it is used to throttle receive for the tap device.
Nonetheless, the correct behaviour is to raise an interrupt when a packet could be received but no buffers are available so I've applied this patch. Thanks.
Regards, Anthony Liguori
|[Prev in Thread]||Current Thread||[Next in Thread]|