With the pending retirement of GIANT, this patch will make ipfilter's sysctl's mpsafe.
Details
Details
Currently running on my infrastructure.
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Comment Actions
LGTM
I assume ipf doesn't run other parts under Giant so does this imply that we've actually had missing locking here all along?
Comment Actions
No, because the sysctl handler was running under Giant implicitly (as it wasn't marked as MPSAFE).
Comment Actions
@kaktus yes the handler was under Giant but I meant what did that actually accomplish? But, I didn't look at what the sysctl handler was actually doing.
Comment Actions
The handler was under "assumed" GIANT. IPF itself uses two other locking mechanisms, common to NetBSD and Solaris (Illumos). I intend to replace them with one of the more modern locks. Given they're called by macros the job won't be as daunting as expected.