diff options
| author | Michael Brown | 2010-09-03 17:16:18 +0200 |
|---|---|---|
| committer | Michael Brown | 2010-09-03 22:29:44 +0200 |
| commit | a3021ad0e42275f0c0e6c5205746c69ab63b8dfd (patch) | |
| tree | 791ae8af4e3bbe149c8f2aa90c3232050ff35c97 | |
| parent | [retry] Hold reference while timer is running and during expiry callback (diff) | |
| download | ipxe-a3021ad0e42275f0c0e6c5205746c69ab63b8dfd.tar.gz ipxe-a3021ad0e42275f0c0e6c5205746c69ab63b8dfd.tar.xz ipxe-a3021ad0e42275f0c0e6c5205746c69ab63b8dfd.zip | |
[rtl8139] Strip CRC from received packets
The rtl8139 driver includes the Ethernet CRC within the received
packet. All current protocols ignore trailing garbage, but FCoE
requires the frame length to be correct (since the FCoE footer
position is calculated from the end of the packet), so fix the driver
to strip out the CRC.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
| -rw-r--r-- | src/drivers/net/rtl8139.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/drivers/net/rtl8139.c b/src/drivers/net/rtl8139.c index 208db0975..d5fb178fd 100644 --- a/src/drivers/net/rtl8139.c +++ b/src/drivers/net/rtl8139.c @@ -458,6 +458,7 @@ static void rtl_poll ( struct net_device *netdev ) { rx_len - wrapped_len ); memcpy ( iob_put ( rx_iob, wrapped_len ), rtl->rx.ring, wrapped_len ); + iob_unput ( rx_iob, 4 ); /* Strip CRC */ netdev_rx ( netdev, rx_iob ); } else { |
