summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorweongyo <weongyo@FreeBSD.org>2008-05-30 06:31:55 +0000
committerweongyo <weongyo@FreeBSD.org>2008-05-30 06:31:55 +0000
commit1ea90a0deae5bb3d69f5f91d039927b404236885 (patch)
tree0e809a765de58bf8494183f20ea20551afb34df6 /sys/compat
parent500241b6c642bd77dc5a1f751467dc7f1be9c902 (diff)
downloadFreeBSD-src-1ea90a0deae5bb3d69f5f91d039927b404236885.zip
FreeBSD-src-1ea90a0deae5bb3d69f5f91d039927b404236885.tar.gz
Fix a panic that a priority value which is passed to cv_broadcastpri(9)
can be < 0. We don't ignore a `increment' argument but at least we keep a priority value of NDIS threads over PRI_MIN_KERN. Reviewed by: thompsa
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/ndis/subr_ntoskrnl.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/compat/ndis/subr_ntoskrnl.c b/sys/compat/ndis/subr_ntoskrnl.c
index dd76d25..2f51242 100644
--- a/sys/compat/ndis/subr_ntoskrnl.c
+++ b/sys/compat/ndis/subr_ntoskrnl.c
@@ -1591,8 +1591,9 @@ ntoskrnl_waittest(obj, increment)
}
if (satisfied == TRUE)
- cv_broadcastpri(&we->we_cv, w->wb_oldpri -
- (increment * 4));
+ cv_broadcastpri(&we->we_cv,
+ (w->wb_oldpri - (increment * 4)) > PRI_MIN_KERN ?
+ w->wb_oldpri - (increment * 4) : PRI_MIN_KERN);
e = e->nle_flink;
}
@@ -3384,8 +3385,9 @@ KeSetEvent(kevent, increment, kwait)
}
} else {
w->wb_awakened |= TRUE;
- cv_broadcastpri(&we->we_cv, w->wb_oldpri -
- (increment * 4));
+ cv_broadcastpri(&we->we_cv,
+ (w->wb_oldpri - (increment * 4)) > PRI_MIN_KERN ?
+ w->wb_oldpri - (increment * 4) : PRI_MIN_KERN);
}
}
OpenPOWER on IntegriCloud