MTU vlan-related patch for tulip (2.4.x)
PATCH 1/1 MTU vlan-related patch for tulip (2.4.x)
Tired of patching everytime ... since vlan are now in official kernel
I hope it will not break any things er ? should apply cleanly to latest 2.4
...
drivers/net/tulip/interrupt.c +4 -4
@@ -128,8 +128,8 @@ dev->name, entry, status);if (--rx_work_limit <0 )break ; -if ((status &0x38008300 ) !=0x0300 ) { -if ((status &0x38000300 ) !=0x0300 ) { +if ((status & (0x38000000 | RxDescFatalErr | RxWholePkt)) != RxWholePkt) { +if ((status & (0x38000000 | RxWholePkt)) != RxWholePkt) {/* Ingore earlier buffers. */ if ((status &0xffff ) !=0x7fff ) {if (tulip_debug >1 )
@@ -155,10 +155,10 @@struct sk_buff *skb;#ifndef final_version -if (pkt_len >1518 ) { +if (pkt_len >1522 ) {printk (KERN_WARNING "%s: Bogus packet size of %d (%#x).\n" , dev->name, pkt_len, pkt_len); - pkt_len =1518 ; + pkt_len =1522 ; tp->stats.rx_length_errors++; }#endif
drivers/net/tulip/tulip.h +2 -2
@@ -186,7 +186,7 @@enum desc_status_bits { DescOwned =0x80000000 , - RxDescFatalErr =0x8000 , + RxDescFatalErr =0x4842 , RxWholePkt =0x0300 , };
@@ -264,7 +264,7 @@#define MEDIA_MASK 31 -#define PKT_BUF_SZ 1536/* Size of each temporary Rx buffer. */ +#define PKT_BUF_SZ 1540/* Size of each temporary Rx buffer. */ #define TULIP_MIN_CACHE_LINE 8/* in units of 32-bit words */
drivers/net/tulip/tulip_core.c +1 -1
@@ -59,7 +59,7 @@#if defined(__alpha__) || defined(__arm__) || defined(__hppa__) \ || defined(__sparc_) || defined(__ia64__) \ || defined(__sh__) || defined(__mips__) -static int rx_copybreak =1518 ; +static int rx_copybreak =1522 ;#else static int rx_copybreak =100 ;#endif
--
Paul P 'Stingray' Komkoff 'Greatest' Jr // (icq)23200764 // (irc)Spacebar
PPKJ1-RIPE // (smtp)[email protected] // (http)stingr.net // (pgp)0xA4B4ECA4
Quoted 16 lines · Paul P Komkoff Jr
diff -urN
linux-2.4.9-ac10-novlan/drivers/net/tulip/tulip.hlinux-2.4.9-ac10/drivers/net/tulip/tulip.hdrivers/net/tulip/tulip.h Mon Sep 10 18:42:27 2001 renamed from drivers/net/tulip/tulip.h Wed Jun 20 22:19:02 2001 +1
-1@@ -264,7 +264,7 @@ #define MEDIA_MASK 31 -#define PKT_BUF_SZ 1536 /* Size of each temporary Rx buffer. */ +#define PKT_BUF_SZ 1540 /* Size of each temporary Rx buffer. */ #define TULIP_MIN_CACHE_LINE 8 /* in units of 32-bit words */diff -urN
linux-2.4.9-ac10-novlan/drivers/net/tulip/tulip_core.clinux-2.4.9-ac10/drivers/net/tulip/tulip_core.c
drivers/net/tulip/tulip_core.c Mon Sep 10 18:39:59 2001 line 65
Quoted 8 lines
drivers/net/tulip/tulip_core.c Mon Sep 10 18:39:59 2001 renamed from drivers/net/tulip/tulip_core.c Mon Sep 10 18:50:47 2001 +1
-1@@ -59,7 +59,7 @@ #if defined(__alpha__) || defined(__arm__) || defined(__hppa__) \ || defined(__sparc_) || defined(__ia64__) \ || defined(__sh__) || defined(__mips__) -static int rx_copybreak = 1518; +static int rx_copybreak = 1522; #else static int rx_copybreak = 100; #endif
I haven't added it to mainline because of these two patches... I want
to fully analyze their affects before potentially shifting allocation patterns particularly.
Jeff
Signature · 3 lines
Jeff Garzik | Only so many songs can be sung Building 1024 | with two lips, two lungs, and one tongue. MandrakeSoft | - nomeansno
To clarify, the patch takes PKT_BUF_SZ from (512*3) to (512*3)+4 which moves away from the nice multiple of a power-of-2 number.
Signature · 3 lines
Jeff Garzik | Only so many songs can be sung Building 1024 | with two lips, two lungs, and one tongue. MandrakeSoft | - nomeansno
I think Becker once told me that there was no need to increase the 1536 number (it is already plenty big, and has some extra space in it already)...
Quoted 3 lines · Jeff Garzik
To clarify, the patch takes
PKT_BUF_SZfrom (512*3) to (512*3)+4 which moves away from the nice multiple of a power-of-2 number.
Signature · 3 lines
Ben Greear <[email protected]> <Ben_Greear AT excite.com> President of Candela Technologies Inc http://www.candelatech.com ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear
Quoted 3 lines · Ben Greear
I think Becker once told me that there was no need to increase the 1536 number (it is already plenty big, and has some extra space in it already)...
You are correct: standard ethernet packet size is 1500 + 6 + 6 + 4 if the crc is included. Of course, some drivers use part of the memory in the packet for the rx descriptor....
-ben