<div dir="ltr">Hi<div><br></div><div>_TOD_Set() currently can't fail. With the addition of the TOD hooks, if a</div><div>BSP hook returns false, then _TOD_Set will fail. This requires that the lock</div><div>acquired by _TOD_Acquire before _TOD_Set is invoked as in rtems_clock_set()</div><div>should be released on the failure path.  I don't see a _TOD_Release method.</div><div>What method needs to be invoked on the hook error path?</div><div><br></div><div><div>=====================================</div><div></div></div><div>bool _TOD_Set(<br>  const struct timespec *tod,<br>  ISR_lock_Context      *lock_context<br>)<br>{<br>  struct bintime  tod_as_bintime;<br>  uint64_t        tod_as_ticks;<br>  uint32_t        cpu_max;<br>  uint32_t        cpu_index;<br>  bool            retval;<br><br>  _Assert( _TOD_Is_owner() );<br><br>  retval = _TOD_Hook_Run( TOD_ACTION_SET_CLOCK, tod );<br>  if ( retval == false ) {<br>    // XXX what  to release???<br>    return false;<br>  }<br><br>  timespec2bintime( tod, &tod_as_bintime );<br>  _Timecounter_Set_clock( &tod_as_bintime, lock_context );<br></div><div>=====================================</div><div><br></div><div>Thanks</div><div><br></div><div>--joel</div></div>