freebsd-nq/sys/dev/fxp
Nate Lawson 4953bccacf Make fxp(4) INTR_MPSAFE (but do not enable MPSAFE just yet):
- Add fxp_start_body() and change fxp_start() to just acquire locks and
  then call fxp_start_body().  Places that would call fxp_start() with
  locks held (mutex recursion) now call fxp_start_body() directly.
  Remove MTX_RECURSE flag from sc_mtx. [gallatin]
- Change fxp_attach() to work without the softc lock, saving interrupt
  hooking until the head of fxp_attach().
- Call ether_ifattach() before overriding ifp parameters. This reverts
  part of 1.155.
- Remove multiple error paths in fxp_attach().
- Teardown interrupt in fxp_detach() before unlocking the softc.
- Make sure mutex is not held in fxp_release()
- Delete the miibus instance and/or self in fxp_release(), not in
  fxp_detach().  This can happen if attach fails partway through.
- Move ifmedia_removeall to fxp_release() since attach may fail after
  media have been allocated.
- Add locking to fxp_suspend, fxp_resume, fxp_start, fxp_intr,
  fxp_poll, fxp_tick, fxp_ioctl, fxp_watchdog.
- Pass in ifp to fxp_intr_body since its callers sometimes already use
  it.
- Add compatibility define for INTR_MPSAFE for 4.x. [gallatin]
- You don't need to bzero softc.

Ideas from:	gallatin, mux
Tested by:	>400M packets of dd/ssh, NFS, ping on i386 UP
2003-04-25 09:01:54 +00:00
..
if_fxp.c Make fxp(4) INTR_MPSAFE (but do not enable MPSAFE just yet): 2003-04-25 09:01:54 +00:00
if_fxpreg.h Revert the s/u_int/u_int8_t/ changes, we can't really use other 2003-04-06 21:35:45 +00:00
if_fxpvar.h Make fxp(4) INTR_MPSAFE (but do not enable MPSAFE just yet): 2003-04-25 09:01:54 +00:00
rcvbundl.h Add Intel's loadable microcode to implement receive side bundling. 2001-10-25 05:23:31 +00:00