The code path from the IPv4 multicast setsockopt could call ip_output()
without entering an epoch. Specifically, the MRT_ADD_MFC setbsocopt
would call add_mfc(), which in turn called ip_mdq() to send queued
packets. This resulted in an epoch assert failure in ip_output().
Enter an epoch in add_mfc(), and add some epoch asserts to check
for similar failures.
Details
Details
tested with mrouted and rwhod -m
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 44845 Build 41733: arc lint + arc unit
Event Timeline
Comment Actions
Sounds reasonable to me and I like the extra asserts for documentation purposes; I always wonder if the entire ioctl paths should just acquire/release epoch but that's a totally different can of worms.