Page MenuHomeFreeBSD

in_mcast.c: need if_addr_lock around inm_release_deferred
ClosedPublic

Authored by rlibby on Jun 24 2019, 4:28 PM.
Tags
None
Referenced Files
F114893808: D20740.id.diff
Fri, Apr 18, 5:44 AM
F114893235: D20740.id.diff
Fri, Apr 18, 5:42 AM
F114893099: D20740.id64871.diff
Fri, Apr 18, 5:40 AM
F114863477: D20740.diff
Thu, Apr 17, 8:30 PM
Unknown Object (File)
Wed, Apr 16, 11:48 AM
Unknown Object (File)
Sat, Mar 22, 8:54 AM
Unknown Object (File)
Mar 3 2025, 3:48 PM
Unknown Object (File)
Feb 27 2025, 1:34 PM

Details

Summary

Apply a similar fix as for in6_mcast.c.

Sponsored by: Dell EMC Isilon

Test Plan

sysctl debug.fail_point.mnowait="1%return"
kyua test -k /usr/tests/sys/Kyuafile

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 25154
Build 23848: arc lint + arc unit

Event Timeline

Fix up for conflict with r349369.

Patch looks good to me. Did you run with this patch?

Patch looks good to me. Did you run with this patch?

Finally got around to testing this. I have been running with this patch, but wanted to demonstrate that the error paths were actually covered.

I was able to hit the first path (in in_joingroup_locked()) with an alloc M_NOWAIT fail point. I think the second one (in in_join_group()) is not possible to hit with the current code flow (is_new && imfimf->imf_inm == NULL). But I inserted a fail point between in_joingroup_locked() and inm_acquire() and was able to light it up that way. No panics or witness warnings.

This revision is now accepted and ready to land.Nov 25 2019, 9:49 PM