cvs commit: src/sys/dev/fxp if_fxp.c if_fxpvar.h

Nate Lawson njl at
Fri Apr 25 02:01:55 PDT 2003

njl         2003/04/25 02:01:54 PDT

  FreeBSD src repository

  Modified files:
    sys/dev/fxp          if_fxp.c if_fxpvar.h 
  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
  - 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
  Revision  Changes    Path
  1.174     +131 -51   src/sys/dev/fxp/if_fxp.c
  1.25      +3 -0      src/sys/dev/fxp/if_fxpvar.h

More information about the cvs-all mailing list