summaryrefslogtreecommitdiffstats
path: root/sys/compat/ndis/kern_ndis.c
diff options
context:
space:
mode:
authorwpaul <wpaul@FreeBSD.org>2004-04-16 00:04:28 +0000
committerwpaul <wpaul@FreeBSD.org>2004-04-16 00:04:28 +0000
commit1ea56deba6d80d9814e14d9824afaabbd44e2083 (patch)
tree2e4ed3d35b5e784b6240148e29a679482a5c5573 /sys/compat/ndis/kern_ndis.c
parent2b19543d6c25a0cb41471328b2231cf8b28a08a2 (diff)
downloadFreeBSD-src-1ea56deba6d80d9814e14d9824afaabbd44e2083.zip
FreeBSD-src-1ea56deba6d80d9814e14d9824afaabbd44e2083.tar.gz
- Use memory barrier with atomic operations in ntoskrnl_lock_dpc() and
ntoskrnl_unlocl_dpc(). - hal_raise_irql(), hal_lower_irql() and hal_irql() didn't work right on SMP (priority inheritance makes things... interesting). For now, use only two states: DISPATCH_LEVEL (PI_REALTIME) and PASSIVE_LEVEL (everything else). Tested on a dual PIII box. - Use ndis_thsuspend() in ndis_sleep() instead of tsleep(). (I added ndis_thsuspend() and ndis_thresume() to replace kthread_suspend() and kthread_resume(); the former will preserve a thread's priority when it wakes up, the latter will not.) - Change use of tsleep() in ndis_stop_thread() to prevent priority change on wakeup.
Diffstat (limited to 'sys/compat/ndis/kern_ndis.c')
-rw-r--r--sys/compat/ndis/kern_ndis.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/compat/ndis/kern_ndis.c b/sys/compat/ndis/kern_ndis.c
index 733e0d3..6e5d35a 100644
--- a/sys/compat/ndis/kern_ndis.c
+++ b/sys/compat/ndis/kern_ndis.c
@@ -348,7 +348,7 @@ ndis_stop_thread(t)
/* wait for thread exit */
- tsleep(r, PPAUSE|PCATCH, "ndisthrexit", hz * 60);
+ tsleep(r, curthread->td_priority|PCATCH, "ndisthexit", hz * 60);
/* Now empty the job list. */
OpenPOWER on IntegriCloud