On 11/13/2015 3:16 AM, Alexander V. Chernikov wrote: > 10.11.2015, 17:49, "Randall Stewart" <r...@freebsd.org>: >> Author: rrs >> Date: Tue Nov 10 14:49:32 2015 >> New Revision: 290664 >> URL: https://svnweb.freebsd.org/changeset/base/290664 >> >> Log: >> Add new async_drain to the callout system. This is so-far not used but >> should be used by TCP for sure in its cleanup of the IN-PCB (will be >> coming shortly). > > Randall, this commit introduced change in callout_stop() which was not > mentioned in commit message. > This change has broken lltable arp/nd handling: deleting interface address > causes immediate panic. > I also see other other code/subsystems relying on callout_stop() return value > (netgraph, pfsync, iscsi). > I was not able to find any discussion/analysis/testing for these in D4076 so > this change does not look like being properly tested prior commiting.. > >
Fixing this is pretty easy. Keeping _callout_stop_safe() as a function wrapper around a new _callstop_stop_safe_drain() that takes the new argument. Then change callout_stop define to use _callstop_stop_safe_drain(). New code will avoid the wrapper function as it is recompiled. -- Regards, Bryan Drewery
signature.asc
Description: OpenPGP digital signature