diff options
author | Michael Brown | 2011-03-12 13:48:29 +0100 |
---|---|---|
committer | Michael Brown | 2011-03-12 13:48:29 +0100 |
commit | c315ae039424ad53c0a6c01c93eb0444ab8bfb37 (patch) | |
tree | 533ca0cc29f95d22b17426d0995ef8d7eece4b0c /src/drivers | |
parent | [bios] Use INT 16,11 instead of INT 16,01 to check for keystrokes (diff) | |
download | ipxe-c315ae039424ad53c0a6c01c93eb0444ab8bfb37.tar.gz ipxe-c315ae039424ad53c0a6c01c93eb0444ab8bfb37.tar.xz ipxe-c315ae039424ad53c0a6c01c93eb0444ab8bfb37.zip |
[eepro100] Do not discard short packets
In a virtual environment such as qemu, we can legitimately receive
packets less than 64 bytes in length, such as ARP replies. These are
currently discarded, causing most IPv4 communication to fail.
Fix by ignoring the RFDShort bit when receiving packets.
Reported-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/net/eepro100.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/drivers/net/eepro100.c b/src/drivers/net/eepro100.c index 50214ecc..85840cdf 100644 --- a/src/drivers/net/eepro100.c +++ b/src/drivers/net/eepro100.c @@ -808,7 +808,7 @@ static void ifec_rx_process ( struct net_device *netdev ) cur_rx ); DBGIO_HD ( (void*)rfd->packet, 0x30 ); - if ( ( status & RFD_STATUS ) != RFD_OK ) { + if ( ( status & ( RFD_STATUS & ~RFDShort ) ) != RFD_OK ) { DBG ( "Corrupted packet received. " "Status = %#08hx\n", status ); netdev_rx_err ( netdev, iob, -EINVAL ); |