Module name: ndis
Committed by: rittera
Date: Thu Sep 1 02:45:17 UTC 2005
ndis/sys/compat/ndis: kern_ndis.c subr_ndis.c subr_ntoskrnl.c
ndis/sys/dev/if_ndis: if_ndis.c if_ndis_pci.c if_ndisvar.h
Did more work on the locks in kern_ndis.c. It seems that sometimes in a
device interrupt context curlwp isn't NULL, so I added a global variable,
ndis_in_isr which is true when in an interrupt. This isn't the best solution,
as it dosen't work for timeouts, or network software interrupts, but it
seems to make it work. Also I removed the LK_CANRECURSE flag from lockinit,
as I noticed that FreeBSD dosen't allow recursive locking.
Anyway, it seems to be working a bit better now, but it still stalls and gets
watchdog timeouts. I've still got more work to do on the synchronization
before I move on to trying to get a driver working for other network cards.
To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 ndis/sys/compat/ndis/subr_ntoskrnl.c
cvs rdiff -u -r1.24 -r1.25 ndis/sys/dev/if_ndis/if_ndisvar.h
cvs rdiff -u -r1.25 -r1.26 ndis/index.html
cvs rdiff -u -r1.27 -r1.28 ndis/sys/compat/ndis/subr_ndis.c
cvs rdiff -u -r1.33 -r1.34 ndis/sys/compat/ndis/kern_ndis.c
cvs rdiff -u -r1.35 -r1.36 ndis/sys/dev/if_ndis/if_ndis_pci.c
cvs rdiff -u -r1.51 -r1.52 ndis/sys/dev/if_ndis/if_ndis.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.