Date: Wed, 4 Feb 2015 19:30:39 +0000 From: "rrs (Randall Stewart)" <phabric-noreply@FreeBSD.org> To: freebsd-net@freebsd.org Subject: [Differential] [Request, 51 lines] D1777: Associated fix for arp/nd6 timer usage. Message-ID: <differential-rev-PHID-DREV-7mg6mtc3edzvrggvnij4-req@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
rrs created this revision. rrs added reviewers: jhb, imp, sbruno, gnn, rwatson, lstewart, kostikbel, adrian. rrs added subscribers: hselasky, julian, hiren, emaste, freebsd-net. REVISION SUMMARY There is a hole in the timer code that when you give it a lock, it will lock that lock and then check to see if its been canceled. If the API user actually deletes the memory out from under the callout has its being processed this could (and did in nd6/arp case) lead to a panic when you try to lock (in the callout code) a lock thats been removed. If you use the MPSAFE version, you don't get that since the non-stoppable timers proceed and does the right thing. TEST PLAN After running witness and invariant I will put this on a couple of netflix caches and make sure I see no adverse results (leaked nd6 or arp entries). REVISION DETAIL https://reviews.freebsd.org/D1777 AFFECTED FILES sys/netinet/if_ether.c sys/netinet/in.c sys/netinet6/in6.c sys/netinet6/nd6.c To: rrs, jhb, imp, sbruno, gnn, rwatson, lstewart, kostikbel, adrian Cc: freebsd-net, emaste, hiren, julian, hselasky
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?differential-rev-PHID-DREV-7mg6mtc3edzvrggvnij4-req>