summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown2013-07-15 12:15:48 +0200
committerMichael Brown2013-07-15 12:19:37 +0200
commit918fb437439d1bfb172e7fbdfc03b2b25664bee7 (patch)
tree6b98b7f90d354f648861de45ed7b2fe13723aea0
parent[settings] Add support for navigation keys in "config" user interface (diff)
downloadipxe-918fb437439d1bfb172e7fbdfc03b2b25664bee7.tar.gz
ipxe-918fb437439d1bfb172e7fbdfc03b2b25664bee7.tar.xz
ipxe-918fb437439d1bfb172e7fbdfc03b2b25664bee7.zip
[realtek] Allow extra space in RX buffers
Some hardware (observed with an onboard RTL8168) will erroneously report a buffer overflow error if the received packet exactly fills the receive buffer. Fix by adding an extra four bytes of padding to each receive buffer. Debugged-by: Thomas Miletich <thomas.miletich@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r--src/drivers/net/realtek.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/drivers/net/realtek.h b/src/drivers/net/realtek.h
index 1cd85d95..a17f963f 100644
--- a/src/drivers/net/realtek.h
+++ b/src/drivers/net/realtek.h
@@ -226,7 +226,8 @@ enum realtek_legacy_status {
#define RTL_NUM_RX_DESC 4
/** Receive buffer length */
-#define RTL_RX_MAX_LEN ( ETH_FRAME_LEN + 4 /* VLAN */ + 4 /* CRC */ )
+#define RTL_RX_MAX_LEN \
+ ( ETH_FRAME_LEN + 4 /* VLAN */ + 4 /* CRC */ + 4 /* extra space */ )
/** A Realtek descriptor ring */
struct realtek_ring {