freebsd-dev/sys/dev/mxge
Andrew Gallatin e749ef6bab Clean up mxge's use of callouts as pointed out by jhb,
and handle NIC hardware watchdog resets.

- remove buggy code at the top of mxge_tick() which tried
  to detect a race which is already detected in the kernel's
  callout code.

- move callout_stop() and callout_reset() into mxge_close()
  mxge_open() rather than doing the callout manipulation
  all over the place.

- use callout_drain(), rather than callout_stop() to prevent
  a potential race between mxge_tick() and mxge_detach()
  which could lead to softclock using a destroyed mutex

- restructure the mxge_tick() and mxge_watchdog_reset()
  routines to avoid resetting a callout, and then
  immediately stopping it if the watchdog reset routine
  is called, and fails.

- enable the driver to handle NIC hardware watchdog
  resets by restoring the NIC's PCI config space, which is
  lost when the NIC hardware watchdog triggers.

Reviewed by: jhb (previus version)
2008-07-17 15:46:35 +00:00
..
eth_z8e.h
ethp_z8e.h
if_mxge_var.h Now that mxge supports MSI-X interrupts, reverse the logic and flag 2008-02-14 16:24:14 +00:00
if_mxge.c Clean up mxge's use of callouts as pointed out by jhb, 2008-07-17 15:46:35 +00:00
mcp_gen_header.h
mxge_eth_z8e.c
mxge_ethp_z8e.c
mxge_lro.c Add minimally invasive shims to ease MFCs of mxge back as far 2008-02-14 00:09:59 +00:00
mxge_mcp.h
mxge_rss_eth_z8e.c
mxge_rss_ethp_z8e.c
rss_eth_z8e.h
rss_ethp_z8e.h