3COM - Vortex driver patch
by Arian Ban

3c59x patch driver for 2.6.x kernel: 3c59x_fix_rings.diff

This patch is for fixing the problem of 3c59x driver for 3COM devices. On high traffic the driver stops the comunication and gives you on logs something like this:
   kernel: NETDEV WATCHDOG: eth2: transmit timed out
   kernel: eth2: transmit timed out, tx_status 00 status e000.  
   kernel:   diagnostics: net 0ccc media 8880 dma 000000a0 fifo 0000  
   kernel:   Flags; bus-master 1, dirty 166045(13) current 166061(13)  
   kernel:   Transmit list 36f2da20 vs. f6f2da20.  
   kernel:   0: @f6f2d200  length 80000036 status 00000036  
   kernel:   1: @f6f2d2a0  length 8000003e status 0000003e  
   kernel:   2: @f6f2d340  length 80000036 status 00000036  
   kernel:   3: @f6f2d3e0  length 8000003e status 0000003e  
   kernel:   4: @f6f2d480  length 8000003e status 0000003e  
   kernel:   5: @f6f2d520  length 800005ea status 000005ea  
   kernel:   6: @f6f2d5c0  length 800005ea status 000005ea  
   kernel:   7: @f6f2d660  length 8000003e status 0000003e  
   kernel:   8: @f6f2d700  length 800005ae status 000005ae  
   kernel:   9: @f6f2d7a0  length 800005ea status 000005ea  
   kernel:   10: @f6f2d840  length 80000036 status 00000036  
   kernel:   11: @f6f2d8e0  length 800000ca status 800000ca  
   kernel:   12: @f6f2d980  length 800000d9 status 800000d9  
   kernel:   13: @f6f2da20  length 80000a8d status 00000a8d  
   kernel:   14: @f6f2dac0  length 800005ea status 000005ea  
   kernel:   15: @f6f2db60  length 800005ea status 000005ea  
   kernel: eth2: Resetting the Tx ring pointer. 

But sometimes there are problems on RX too. The max_interrupt_work parameter will give you a message like this: "too much work on interrupt".
I set RX_RING_SIZE and TX_RING_SIZE to 64 (like eepro100 driver) but seems to be small too. It's give me the message more rarly, but is stil buggy.
I set to TX_RING_SIZE to 1024 and RX_RING_SIZE to 2048 seems to work fine. I've tested to a traffic about 97-99 Mbit and seems to be ok.

After increase those pararameters to this values, my network cards work very well, there are rarely overruns packages.