Date: Sun, 4 Jan 2004 13:22:25 -0800 (PST) From: Bill Paul <wpaul@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/compat/ndis kern_ndis.c subr_ndis.c src/sys/dev/if_ndis if_ndis.c if_ndisvar.h Message-ID: <200401042122.i04LMPG6003355@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
wpaul 2004/01/04 13:22:25 PST
FreeBSD src repository
Modified files:
sys/compat/ndis kern_ndis.c subr_ndis.c
sys/dev/if_ndis if_ndis.c if_ndisvar.h
Log:
Modify if_ndis.c so that the MiniportISR function runs in ndis_intr()
and MiniportHandleInterrupt() is fired off later via a task queue in
ndis_intrtask(). This more accurately follows the NDIS interrupt handling
model, where the ISR does a minimal amount of work in interrupt context
and the handler is defered and run at a lower priority.
Create a separate ndis_intrmtx mutex just for the guarding the ISR.
Modify NdisSynchronizeWithInterrupt() to aquire the ndis_intrmtx
mutex before invoking the synchronized procedure. (The purpose of
this function is to provide mutual exclusion for code that shares
variables with the ISR.)
Modify NdisMRegisterInterrupt() to save a pointer to the miniport
block in the ndis_miniport_interrupt structure so that
NdisSynchronizeWithInterrupt() can grab it later and derive
ndis_intrmtx from it.
Revision Changes Path
1.21 +1 -0 src/sys/compat/ndis/kern_ndis.c
1.25 +9 -2 src/sys/compat/ndis/subr_ndis.c
1.22 +29 -4 src/sys/dev/if_ndis/if_ndis.c
1.5 +2 -0 src/sys/dev/if_ndis/if_ndisvar.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401042122.i04LMPG6003355>
