callout_drain either broken or man page needs updating

Gleb Smirnoff glebius at FreeBSD.org
Fri Jul 15 08:43:11 UTC 2016


On Thu, Jul 14, 2016 at 10:14:46PM -0700, Matthew Macy wrote:
M>  > On 07/15/16 05:45, Matthew Macy wrote: 
M>  > > glebius last commit needs some further re-work. 
M>  >  
M>  > Glebius commit needs to be backed out, at least the API change that  
M>  > changes the return value when calling callout_stop() when the callout is  
M>  > scheduled and being serviced. Simply because there is code out there,  
M>  > like Mattew and others have discovered that is "refcounting" on the  
M>  > callout_reset() and expecting that a subsequent callout_stop() will  
M>  > return 1 to "unref". 
M> 
M> Yes. This is the cause of the "refcnt 0 on LLE at boot..." regression.

No it isn't. The regression is caused by unintentional change of return
value for never scheduled callout. The fix is now being tested, see PR 210884.

The piece of ND6 code that Hans quotes isn't affected by change of return
value for scheduled+running callout, since ND6 doesn't create callouts in
this tricky state.


-- 
Totus tuus, Glebius.


More information about the freebsd-current mailing list