Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Nov 2009 19:25:47 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/dev/pdq if_fea.c if_fpa.c pdq_freebsd.h pdq_ifsubr.c
Message-ID:  <200911191926.nAJJQ8uT042889@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
jhb         2009-11-19 19:25:47 UTC

  FreeBSD src repository

  Modified files:
    sys/dev/pdq          if_fea.c if_fpa.c pdq_freebsd.h 
                         pdq_ifsubr.c 
  Log:
  SVN rev 199542 on 2009-11-19 19:25:47Z by jhb
  
  Several fixes to these drivers.  Note that these two drivers are actually
  just two different attachments (EISA and PCI) to a single driver.
  - Add real locking.  Previously these drivers only acquired their lock
    in their interrupt handler or in the ioctl routine (but too broadly in
    the latter).  No locking was used for the stack calling down into the
    driver via if_init() or if_start(), for device shutdown or detach.  Also,
    the interrupt handler held the driver lock while calling if_input().  All
    this stuff should be fixed in the locking changes.
  - Really fix these drivers to handle if_alloc().  The front-end attachments
    were using if_initname() before the ifnet was allocated.  Fix this by
    moving some of the duplicated logic from each driver into pdq_ifattach().
    While here, make pdq_ifattach() return an error so that the driver just
    fails to attach if if_alloc() fails rather than panic'ing.  Also, defer
    freeing the ifnet until the driver has stopped using it during detach.
  - Add a new private timer to drive the watchdog timer.
  - Pass the softc pointer to the interrupt handlers instead of the device_t
    so we can avoid the use of device_get_softc() and to better match what
    other drivers do.
  
  Revision  Changes    Path
  1.31      +10 -20    src/sys/dev/pdq/if_fea.c
  1.29      +10 -20    src/sys/dev/pdq/if_fpa.c
  1.14      +5 -1      src/sys/dev/pdq/pdq_freebsd.h
  1.32      +89 -31    src/sys/dev/pdq/pdq_ifsubr.c



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911191926.nAJJQ8uT042889>