cvs commit: src/sys/compat/ndis ntoskrnl_var.h subr_ndis.c subr_ntoskrnl.c

Bill Paul wpaul at FreeBSD.org
Sun Feb 15 18:50:04 PST 2004


wpaul       2004/02/15 18:50:04 PST

  FreeBSD src repository

  Modified files:
    sys/compat/ndis      ntoskrnl_var.h subr_ndis.c 
                         subr_ntoskrnl.c 
  Log:
  More cleanups/fixes for the AMD Am1771 driver:
  
  - When adding new waiting threads to the waitlist for an object,
    use INSERT_LIST_TAIL() instead of INSERT_LIST_HEAD() so that new
    waiters go at the end of the list instead of the beginning. When we
    wake up a synchronization object, only the first waiter is awakened,
    and this needs to be the first thread that actually waited on the object.
  
  - Correct missing semicolon in INSERT_LIST_TAIL() macro.
  
  - Implement lookaside lists correctly. Note that the Am1771 driver
    uses lookaside lists to manage shared memory (i.e. DMAable) buffers
    by specifying its own alloc and free routines. The Microsoft documentation
    says you should avoid doing this, but apparently this did not deter
    the developers at AMD from doing it anyway.
  
  With these changes (which are the result of two straight days of almost
  non-stop debugging), I think I finally have the object/thread handling
  semantics implemented correctly. The Am1771 driver no longer crashes
  unexpectedly during association or bringing the interface up.
  
  Revision  Changes    Path
  1.8       +3 -1      src/sys/compat/ndis/ntoskrnl_var.h
  1.48      +1 -1      src/sys/compat/ndis/subr_ndis.c
  1.22      +76 -20    src/sys/compat/ndis/subr_ntoskrnl.c


More information about the cvs-src mailing list