]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
If there is a system with a bpf consumer running and a packet is wanted
authoreri <eri@FreeBSD.org>
Wed, 17 Jun 2015 12:23:04 +0000 (12:23 +0000)
committereri <eri@FreeBSD.org>
Wed, 17 Jun 2015 12:23:04 +0000 (12:23 +0000)
commit00bae218742ed1c2e299a634a5be29f881f1243d
treeef2badda46aafff4d0d97ec5ac496295a3c0077f
parent1574191a793bc236ab98611af46ae42fb9a6241a
If there is a system with a bpf consumer running and a packet is wanted
to be transmitted but the arp cache entry expired, which triggers an arp request
to be sent, the bpf code might want to sleep but crash the system due
to a non sleep lock held from the arp entry not released properly.

Release the lock before calling the arp request code to solve the issue
as is done on all the other code paths.

PR: 200323
Approved by: ae, gnn(mentor)
MFC after: 1 week
Sponsored by: Netgate
Differential Revision: https://reviews.freebsd.org/D2828
sys/netinet/if_ether.c