Created attachment 152183 [details] patch to correct locking in arp_ifscrub When renaming interfaces, if you attempt to delete the ARP entries that are marked LLE_STATIC, the kernel will panic. This is due to only holding a read lock when a write lock is required.
A commit references this bug: Author: ae Date: Sat Mar 7 18:33:09 UTC 2015 New revision: 279730 URL: https://svnweb.freebsd.org/changeset/base/279730 Log: lla_lookup() can directly call llentry_free() for static entries and the last one requires to hold afdata's wlock. PR: 197096 MFC after: 1 week Changes: head/sys/netinet/if_ether.c
(In reply to lidl from comment #0) > Created attachment 152183 [details] > patch to correct locking in arp_ifscrub > > When renaming interfaces, if you attempt to delete the ARP entries that > are marked LLE_STATIC, the kernel will panic. > > This is due to only holding a read lock when a write lock is required. Yes, this was my fault. I merged r260187 from our code base, but the patch became outdated after r249742.
A commit references this bug: Author: ae Date: Sat Mar 14 14:35:08 UTC 2015 New revision: 279988 URL: https://svnweb.freebsd.org/changeset/base/279988 Log: MFC r279730: lla_lookup() can directly call llentry_free() for static entries and the last one requires to hold afdata's wlock. PR: 197096 Changes: _U stable/10/ stable/10/sys/netinet/if_ether.c
A commit references this bug: Author: ae Date: Sat Mar 14 14:44:04 UTC 2015 New revision: 279990 URL: https://svnweb.freebsd.org/changeset/base/279990 Log: MFC r279730: lla_lookup() can directly call llentry_free() for static entries and the last one requires to hold afdata's wlock. PR: 197096 Changes: _U stable/9/sys/ stable/9/sys/netinet/if_ether.c
Fixed in head/, stable/10 and stable/9. Thanks!