cvs commit: src/sys/compat/ndis kern_ndis.c subr_ndis.c src/sys/dev/if_ndis if_ndis.c if_ndisvar.h

[ Available lists | Index of cvs-src | Month of Jan 2004 | Week of 4 Jan 2004 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Bill Paul <wpaul@FreeBSD.org>
Date
4 Jan 2004 13:22:27
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


[ Hide this part ]
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


Elapsed time: 0.057 seconds