Properly serialize access in the NV ethernet driver and attempt to fix
authorMatthew Dillon <dillon@dragonflybsd.org>
Wed, 12 Oct 2005 01:09:31 +0000 (01:09 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Wed, 12 Oct 2005 01:09:31 +0000 (01:09 +0000)
commit59a5a75e35b06f1ef38599f61e92d41da5721430
treeb34750a8670152ef2f49849c3b6ba41a90d56aac
parenta52bd8859ed825edc8fd196f4bd76f9e3faab7c6
Properly serialize access in the NV ethernet driver and attempt to fix
another watchdog-on-reinit issue.  I still see occassional watchdog timeouts,
however.

Add polling support, but there is currently no way to disable the interrupt
without also causing the NVidia interrupt callback functions to stop operating
(i.e. it stops doing work when called), so this feature is only really useful
to make the device work in cases where the kernel is unable to properly route
the interrupt.

It might be possible to do an end-run around the problem with a PCI bus
call to mask the interrupt there.

Call pfnClearTxDesc() prior to uninitializing an interface in the hopes
that it cleans out transmit descriptors and makes the callback so we can
deallocate the mbufs (not tested for that yet, but it atleast does not make
things any worse).

GigE NV interfaces should now negotiate for GigE speeds with the changes
made in the generic MII code.
sys/dev/netif/nv/if_nv.c
sys/dev/netif/nv/if_nvreg.h