Page MenuHomeFreeBSD

nd6: Mark several global callouts MPSAFE
ClosedPublic

Authored by markj on Aug 9 2021, 12:43 AM.
Tags
None
Referenced Files
Unknown Object (File)
Oct 12 2024, 4:01 PM
Unknown Object (File)
Sep 22 2024, 3:04 AM
Unknown Object (File)
Sep 22 2024, 12:41 AM
Unknown Object (File)
Sep 21 2024, 5:05 PM
Unknown Object (File)
Sep 21 2024, 7:06 AM
Unknown Object (File)
Sep 20 2024, 9:44 AM
Unknown Object (File)
Sep 20 2024, 9:38 AM
Unknown Object (File)
Sep 20 2024, 9:38 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
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

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