svn commit: r204482 - stable/8/sys/kern
Andriy Gapon
avg at FreeBSD.org
Sun Feb 28 21:28:25 UTC 2010
Author: avg
Date: Sun Feb 28 21:28:24 2010
New Revision: 204482
URL: http://svn.freebsd.org/changeset/base/204482
Log:
MFC r203061: KASSERT contract of return value of interrupt filter
X-MFCto7 after: 1 week
Modified:
stable/8/sys/kern/kern_intr.c
Directory Properties:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
stable/8/sys/netinet/ (props changed)
Modified: stable/8/sys/kern/kern_intr.c
==============================================================================
--- stable/8/sys/kern/kern_intr.c Sun Feb 28 21:23:50 2010 (r204481)
+++ stable/8/sys/kern/kern_intr.c Sun Feb 28 21:28:24 2010 (r204482)
@@ -1378,6 +1378,12 @@ intr_event_handle(struct intr_event *ie,
ret = ih->ih_filter(frame);
else
ret = ih->ih_filter(ih->ih_argument);
+ KASSERT(ret == FILTER_STRAY ||
+ ((ret & (FILTER_SCHEDULE_THREAD | FILTER_HANDLED)) != 0 &&
+ (ret & ~(FILTER_SCHEDULE_THREAD | FILTER_HANDLED)) == 0),
+ ("%s: incorrect return value %#x from %s", __func__, ret,
+ ih->ih_name));
+
/*
* Wrapper handler special handling:
*
@@ -1546,7 +1552,11 @@ intr_filter_loop(struct intr_event *ie,
thread_only = 1;
continue;
}
-
+ KASSERT(ret == FILTER_STRAY ||
+ ((ret & (FILTER_SCHEDULE_THREAD | FILTER_HANDLED)) != 0 &&
+ (ret & ~(FILTER_SCHEDULE_THREAD | FILTER_HANDLED)) == 0),
+ ("%s: incorrect return value %#x from %s", __func__, ret,
+ ih->ih_name));
if (ret & FILTER_STRAY)
continue;
else {
More information about the svn-src-all
mailing list