diff options
author | wpaul <wpaul@FreeBSD.org> | 2004-04-16 00:04:28 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2004-04-16 00:04:28 +0000 |
commit | 1ea56deba6d80d9814e14d9824afaabbd44e2083 (patch) | |
tree | 2e4ed3d35b5e784b6240148e29a679482a5c5573 /sys/compat/ndis/kern_ndis.c | |
parent | 2b19543d6c25a0cb41471328b2231cf8b28a08a2 (diff) | |
download | FreeBSD-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.c | 2 |
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. */ |