Gleb:

This now leaks TCP-PCB’s since you have broken the return codes with all your
fixes that used to be in here.

It was

return 1 — You stopped the callout
return 0 — The callout could not be stopped
return -1 — The callout was not running.

The LLRef code that was crashing in in.c depended on this to know to free
the memory.. i.e. if was > 0 then they needed to free the memory.

TCP depends on a return 0 to indicate the async-drain function will be called 
back and
thus increments a refcnt and waits for the callback.

You now return 0 when no timer was active.. which makes the stack then wait
for the not forth coming async-drain call.

R
> On Jul 18, 2016, at 11:29 AM, Gleb Smirnoff <gleb...@freebsd.org> wrote:
> 
> Author: glebius
> Date: Mon Jul 18 09:29:08 2016
> New Revision: 302998
> URL: https://svnweb.freebsd.org/changeset/base/302998
> 
> Log:
>  Revert the last commit. It must get more review and testing first.
> 
> Modified:
>  head/sys/kern/kern_timeout.c
> 
> Modified: head/sys/kern/kern_timeout.c
> ==============================================================================
> --- head/sys/kern/kern_timeout.c      Mon Jul 18 09:26:06 2016        
> (r302997)
> +++ head/sys/kern/kern_timeout.c      Mon Jul 18 09:29:08 2016        
> (r302998)
> @@ -1381,7 +1381,7 @@ again:
>               CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p",
>                   c, c->c_func, c->c_arg);
>               CC_UNLOCK(cc);
> -             return (-1);
> +             return (0);
>       }
> 
>       c->c_iflags &= ~CALLOUT_PENDING;
> 

--------
Randall Stewart
r...@netflix.com
803-317-4952





_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to