[patch] drivers/net/3c59x.c

From: Andrew Morton (andrewm@uow.edu.au)
Date: Sun Jul 02 2000 - 05:42:08 EST


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/



This archive was generated by hypermail 2b29 : Fri Jul 07 2000 - 21:00:10 EST