Page MenuHomeFreeBSD

ARP request proper locking handling
ClosedPublic

Authored by eri on Jun 15 2015, 4:59 PM.

Details

Summary

If there is a system with a bpf consumer running and with direct dispatch policy on an expired arp entry can crash the system if the bpf code wants to sleep when called.

Also described here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=200323

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

eri updated this revision to Diff 6211.Jun 15 2015, 4:59 PM
eri retitled this revision from to ARP request proper locking handling.
eri updated this object.
eri edited the test plan for this revision. (Show Details)
eri added reviewers: network, gnn.
eri set the repository for this revision to rS FreeBSD src repository.
koobs added a subscriber: koobs.Jun 15 2015, 5:05 PM

It's highly likely that LLE_EXCLUSIVE is always set since la_preempt is being modified. The other code branch of arpresolve() calling arprequest() is modifying/unlocking la in the same way. Cheers for tracking this down.

ae accepted this revision.Jun 15 2015, 10:10 PM
ae added a reviewer: ae.
ae added a subscriber: ae.

Looks correct to me.

This revision is now accepted and ready to land.Jun 15 2015, 10:10 PM
gnn accepted this revision.Jun 16 2015, 2:29 AM
gnn edited edge metadata.

Accepted by mentor as well. Please commit.

This revision was automatically updated to reflect the committed changes.