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>