Page MenuHomeFreeBSD

nd6: Mark several global callouts MPSAFE
ClosedPublic

Authored by markj on Aug 9 2021, 12:43 AM.
Tags
None
Referenced Files
F82800989: D31470.diff
Thu, May 2, 5:35 PM
Unknown Object (File)
Mar 22 2024, 10:21 PM
Unknown Object (File)
Feb 19 2024, 12:28 PM
Unknown Object (File)
Feb 8 2024, 2:05 PM
Unknown Object (File)
Jan 11 2024, 11:39 PM
Unknown Object (File)
Jan 11 2024, 11:17 PM
Unknown Object (File)
Dec 21 2023, 8:19 AM
Unknown Object (File)
Nov 22 2023, 6:46 AM

Details

Summary

The ND6 code was written pre-SMP, and the use of Giant here is vestigal.
Nothing in the ND6 code depends on it.

Also enter the net epoch in in6_tmpaddrtimer(). It needs to do so to
iterate over the ifnet list safely. This callout runs very
infrequently, so it's not likely to be a problem, but it probably
should also be synchronizing with in6_tmpifadd().

I did not (yet) mark the DAD callout as MPSAFE, it requires further
fixes (but also does not depend on Giant).

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 40933
Build 37822: arc lint + arc unit

Event Timeline

markj requested review of this revision.Aug 9 2021, 12:43 AM

I always wished the argument was a bool or a '''#define''' with a name rather than 1 but that's unrelated to here.
Looks okay to me.

This revision is now accepted and ready to land.Aug 9 2021, 10:18 AM