svn commit: r286429 - head/sys/kern
Ian Lepore
ian at FreeBSD.org
Fri Aug 7 23:31:32 UTC 2015
Author: ian
Date: Fri Aug 7 23:31:31 2015
New Revision: 286429
URL: https://svnweb.freebsd.org/changeset/base/286429
Log:
Only process the PPS event types currently enabled in pps_params.mode.
This makes the PPS API behave correctly, but isn't ideal -- we still end
up capturing PPS data for non-enabled edges, we just don't process the
data into an event that becomes visible outside of kern_tc. That's because
the event type isn't passed to pps_capture(), so it can't do the filtering.
Any solution for capture filtering is going to require touching every driver.
Modified:
head/sys/kern/kern_tc.c
Modified: head/sys/kern/kern_tc.c
==============================================================================
--- head/sys/kern/kern_tc.c Fri Aug 7 23:03:17 2015 (r286428)
+++ head/sys/kern/kern_tc.c Fri Aug 7 23:31:31 2015 (r286429)
@@ -1703,6 +1703,9 @@ pps_event(struct pps_state *pps, int eve
#endif
KASSERT(pps != NULL, ("NULL pps pointer in pps_event"));
+ /* Nothing to do if not currently set to capture this event type. */
+ if ((event & pps->ppsparam.mode) == 0)
+ return;
/* If the timecounter was wound up underneath us, bail out. */
if (pps->capgen == 0 || pps->capgen !=
atomic_load_acq_int(&pps->capth->th_generation))
More information about the svn-src-head
mailing list