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)
Fri, Mar 22, 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
Unknown Object (File)
Nov 20 2023, 3:25 PM

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