Page MenuHomeFreeBSD

acquire inp lock around ip6_pcbopt to fix IPV6_TCLASS panic
ClosedPublic

Authored by jason_eggnet.com on Jul 9 2018, 7:47 PM.
Tags
None
Referenced Files
F136995984: D16201.id45084.diff
Thu, Nov 20, 10:56 PM
F136993016: D16201.id.diff
Thu, Nov 20, 10:45 PM
F136992720: D16201.id45085.diff
Thu, Nov 20, 10:44 PM
F136992138: D16201.id45307.diff
Thu, Nov 20, 10:43 PM
F136990477: D16201.diff
Thu, Nov 20, 10:37 PM
Unknown Object (File)
Mon, Nov 10, 2:14 AM
Unknown Object (File)
Fri, Nov 7, 6:03 PM
Unknown Object (File)
Fri, Nov 7, 5:02 AM
Subscribers

Details

Summary

Hopefully simple fix to address panics relating to setting IPV6_TCLASS with setsockopt().

The premise of this fix is that it is ok to call malloc with M_NOWAIT while holding a lock on the in6p.

If it is not ok, then major surgery will be required, as ip6_setpktopt() will have to be fixed (as it also calls malloc with M_NOWAIT) which pulls in the ip6_pcbopts(), ip6_setpktopts(), ip6_setpktopt() call chain. The other call chain does have to be fixed but it can be done in a different review (and with relative ease) if this strategy works out.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 17942
Build 17697: arc lint + arc unit