Messages in this thread | | | Date | Sun, 02 Jul 2000 20:42:08 +1000 | From | Andrew Morton <> | Subject | [patch] drivers/net/3c59x.c |
| |
Fingers crossed, this is the final 3c59x patch for Linux 2.4. But I have heard very little from users of the Cardbus NICs.
Patch against 2.4.0-test3-pre2 is at
http://www.uow.edu.au/~andrewm/3c59x.patch
Changes since June 6:
- Added support for 3c556, updated pci.ids for this.
- More docco in Documentation/networking/vortex.txt
- The driver wasn't being a good citizen when sharing PCI interrupts. Potentially crashy as well. Put an explicit test for this at the start of the ISR.
- Reset the transmitter when a txReclaim error occurs, as per the datasheet.
- The driver would crash the machine if ALL 32 dev_alloc_skb()'s failed at initialisation. Now, we return -ENOMEM and fail the open() if we can't allocate all the skbs.
- The driver would stop receiving and would require ifdown/ifup if it completely ran out of Rx skbs during operation. (This is caused by low memory).
To fix this we now kick off a one-second timer which polls until the OOM condition recovers.
Some other drivers solve this problem by hanging onto the last remaining skb. That approach has lower OOM-recovery latency than the timer, but I prefer the timer because it has zero impact on the complexity of the normal-case code paths. It worked out very nicely.
Net driver developers: patches against 2.2 and 2.4 for testing this situation are at http://www.uow.edu.au/~andrewm/linux/#dev_alloc_fail
Thanks to Mark Hemment for help with this one.
- The spinlocks around the mdio access functions were blocking interrupts for 300uSecs on a 400MHz machine. So these were made more granular and were replaced with spin_lock_bh().
- Make the writes to TxFreeThreshold boomerang-only. This register is reserved on other NICs.
- Added support for 802.3x MAC-layer flow control. See Documentation/networking/vortex.txt.
There is a testing tool which generates 802.3x PAUSE frames at http://www.uow.edu.au/~andrewm/linux/#flow-ctrl
- Additional details, full changelog at http://www.uow.edu.au/~andrewm/linux/#3c59x-2.3
Things to do in 2.5:
- The Wake-on-LAN functions are still disabled.
- The driver does not support MTU changing. This is needed by VLAN implementations.
- Utilise the 3c905C's DPD polling to reduce PCI accesses.
- Use MMIO.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |