summaryrefslogtreecommitdiffstats
path: root/target/linux/rb532/patches-2.6.28/008-korina_reset_resource_buffer_size_1536.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/rb532/patches-2.6.28/008-korina_reset_resource_buffer_size_1536.patch')
-rw-r--r--target/linux/rb532/patches-2.6.28/008-korina_reset_resource_buffer_size_1536.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/target/linux/rb532/patches-2.6.28/008-korina_reset_resource_buffer_size_1536.patch b/target/linux/rb532/patches-2.6.28/008-korina_reset_resource_buffer_size_1536.patch
new file mode 100644
index 000000000..1db2e0ecb
--- /dev/null
+++ b/target/linux/rb532/patches-2.6.28/008-korina_reset_resource_buffer_size_1536.patch
@@ -0,0 +1,31 @@
+The new value is the one used in the external patch before and allows at
+least a standard MTU of 1500 to be handled correctly. Impact of this
+change gets visible when bigger packets are to be received, issuing:
+| ping -s 492 <IP>
+and bigger payload sized led to 100% packet loss.
+
+Signed-off-by: Phil Sutter <n0-1@freewrt.org>
+---
+ drivers/net/korina.c | 5 ++++-
+ 1 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/net/korina.c b/drivers/net/korina.c
+index fefb33d..e30c2f4 100644
+--- a/drivers/net/korina.c
++++ b/drivers/net/korina.c
+@@ -84,7 +84,10 @@
+ #define KORINA_NUM_RDS 64 /* number of receive descriptors */
+ #define KORINA_NUM_TDS 64 /* number of transmit descriptors */
+
+-#define KORINA_RBSIZE 536 /* size of one resource buffer = Ether MTU */
++/* KORINA_RBSIZE is the hardware's default maximum receive
++ * frame size in bytes. Having this hardcoded means that there
++ * is no support for MTU sizes greater than 1500. */
++#define KORINA_RBSIZE 1536 /* size of one resource buffer = Ether MTU */
+ #define KORINA_RDS_MASK (KORINA_NUM_RDS - 1)
+ #define KORINA_TDS_MASK (KORINA_NUM_TDS - 1)
+ #define RD_RING_SIZE (KORINA_NUM_RDS * sizeof(struct dma_desc))
+--
+1.5.6.4
+
+