diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2005-09-15 20:08:21 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2005-09-15 20:08:21 +0000 |
| commit | 10f508d9a33b81c880e4bb18addcb818196ae324 (patch) | |
| tree | 713cc0c0e6ae1f62348c3bcbd092e6f9d131c61d | |
| parent | 5ae7c95cc3c752d538c97e628e92b0b1b6239a54 (diff) | |
Notes
| -rw-r--r-- | sys/kern/kern_intr.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c index d3c876d6a5f9..ab189cfb4aa3 100644 --- a/sys/kern/kern_intr.c +++ b/sys/kern/kern_intr.c @@ -521,7 +521,8 @@ ithread_loop(void *arg) * another pass. */ atomic_store_rel_int(&ithd->it_need, 0); - THREAD_NO_SLEEPING(); + if (!(ithd->it_flags & IT_SOFT)) + THREAD_NO_SLEEPING(); restart: TAILQ_FOREACH(ih, &ithd->it_handlers, ih_next) { if (ithd->it_flags & IT_SOFT && !ih->ih_need) @@ -547,7 +548,8 @@ restart: if ((ih->ih_flags & IH_MPSAFE) == 0) mtx_unlock(&Giant); } - THREAD_SLEEPING_OK(); + if (!(ithd->it_flags & IT_SOFT)) + THREAD_SLEEPING_OK(); /* * Interrupt storm handling: |
