Date: Thu, 5 Feb 2015 16:37:52 +0000 From: "rrs (Randall Stewart)" <phabric-noreply@FreeBSD.org> To: freebsd-net@freebsd.org Subject: [Differential] [Commented On] D1777: Associated fix for arp/nd6 timer usage. Message-ID: <c8cf50086fc6a0c8c2ef1be4e152cdef@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-7mg6mtc3edzvrggvnij4-req@FreeBSD.org> References: <differential-rev-PHID-DREV-7mg6mtc3edzvrggvnij4-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
rrs added a comment. Adrian: I know he said callout_drain, but just like in TCP that is *not* always possible. In the case of the arp/nd6 code lock are held (same as TCP) so you can't do a callout_drain. Thats why the original author put ref-counting in with the idea that the timer would kill it if it had to execute.. they just did not anticipate that by having the callout grab the lock, it would then be making references to it after they deleted it in this one case. Maybe I need to go back through the code and using jhb's a-n outline point out the lines of code so everyone can follow along how this fixes it... REVISION DETAIL https://reviews.freebsd.org/D1777 To: rrs, imp, sbruno, gnn, rwatson, lstewart, kostikbel, adrian, bz, jhb Cc: bz, emaste, hiren, julian, hselasky, freebsd-net
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c8cf50086fc6a0c8c2ef1be4e152cdef>