Page MenuHomeFreeBSD

Fix DAD callout locking.
AbandonedPublic

Authored by markj on Apr 8 2015, 5:19 AM.
Tags
None
Referenced Files
Unknown Object (File)
Jan 12 2024, 7:59 AM
Unknown Object (File)
Dec 20 2023, 3:09 AM
Unknown Object (File)
Sep 28 2023, 9:53 PM
Unknown Object (File)
Aug 19 2023, 5:02 PM
Unknown Object (File)
Aug 4 2023, 1:07 AM
Unknown Object (File)
Aug 2 2023, 6:20 PM
Unknown Object (File)
Jul 15 2023, 10:20 PM
Unknown Object (File)
Jun 21 2023, 3:02 PM

Details

Reviewers
ae
hrs
bz
Summary

We were calling callout_reset(9) and callout_drain(9) on DAD callouts
without the corresponding lock held (Giant). This change fixes that, and
modifies the DAD callout to use the DAD rwlock instead of Giant.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 20827
Build 20214: arc lint + arc unit

Event Timeline

markj retitled this revision from to Fix DAD callout locking..
markj edited the test plan for this revision. (Show Details)
markj updated this object.
  • Don't take the DAD lock when calling callout_drain().
sys/netinet6/nd6_nbr.c
1131

Thes 4 lines are just whitespace changes, right?

1435–1437

If that is the case, can we assert it?

markj added inline comments.
sys/netinet6/nd6_nbr.c
1131

Yes.

1435–1437

I'll just assert it at the beginning of the function.

I'll trust you to get the assertion right; sounds good to me.

This revision is now accepted and ready to land.Nov 15 2018, 10:48 PM
  • Address review feedback and fix merge conflicts.

I will retest this before committing.

This revision now requires review to proceed.Nov 15 2018, 10:55 PM

I forgot about this one. A variant was committed in 9a94097cd0f46aacf688973d15b3b462c79f0008 .