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.
This commit is contained in:
parent
6f7a9f7c8d
commit
721b581722
@ -1703,6 +1703,9 @@ pps_event(struct pps_state *pps, int event)
|
||||
#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))
|
||||
|
Loading…
x
Reference in New Issue
Block a user