Treat if_gre like any other network drivers during module
initialization by using SI_SUB_PROTO_IF.
Also, destroy cloned interfaces via a prison removal callback for
gre over udp.
PR: 275474
Differential D57669
if_gre(4): Fix races by changing initialization order and locks Authored by pouria on Fri, Jun 19, 3:30 PM. Tags None Referenced Files
Details Treat if_gre like any other network drivers during module PR: 275474 # kyua test -k /usr/tests/Kyuafile sys/net/if_gre sys/net/if_gre:gre_blind_options -> passed [0.660s] sys/net/if_gre:gre6_udpencap -> passed [0.799s] sys/net/if_gre:gre6_basic -> passed [0.819s] sys/net/if_gre:gre4_basic -> passed [0.818s] sys/net/if_gre:gre6_csum -> passed [0.822s] sys/net/if_gre:gre6_seq -> passed [0.799s] sys/net/if_gre:gre6_key -> passed [0.825s] Results file id is usr_tests.20260619-152458-418771 Results saved to /root/.kyua/store/results.usr_tests.20260619-152458-418771.db 7/7 passed (0 broken, 0 failed, 0 skipped) # kyua test -k /usr/tests/Kyuafile sys/netlink/test_rtnl_gre sys/netlink/test_rtnl_gre:test_rtnl_gre -> passed [0.008s] Results file id is usr_tests.20260619-152826-808921 Results saved to /root/.kyua/store/results.usr_tests.20260619-152826-808921.db 1/1 passed (0 broken, 0 failed, 0 skipped)
Diff Detail
Event TimelineComment Actions I'd recommend to split this to multiple commits. For example the removal of GRE_RLOCK() / GRE_RUNLOCK() in gre_transmit() is an optimization and does not look like a FIX. Comment Actions Hi, this is actually a fix. We are not triggering it now because I didn't commit the D55366 review due to the PR275474 issue.
Comment Actions Use more appropriate SI_SUB_PROTO_IF order and destroy cloned | ||||||||||||||||||||||||||||||||||||||||||||