diff options
author | Kristof Provost <kp@FreeBSD.org> | 2020-04-26 16:27:03 +0000 |
---|---|---|
committer | Kristof Provost <kp@FreeBSD.org> | 2020-04-26 16:27:03 +0000 |
commit | 5377560783d95b92fce3bea3caac37d2860b1d48 (patch) | |
tree | 49df7378038e4fefb026de8f78ac0db0bac69e3c | |
parent | fffd27e5f3b9700b6556a8c4fbd9503593a5ba33 (diff) | |
download | src-5377560783d95b92fce3bea3caac37d2860b1d48.tar.gz src-5377560783d95b92fce3bea3caac37d2860b1d48.zip |
bridge tests: Test for #216510
We used to have an issue with recursive locking with
net.link.bridge.inherit_mac. This causes us to send an ARP request while
we hold the BRIDGE_LOCK, which used to cause us to acquire the
BRIDGE_LOCK again. We can't re-acquire it, so this caused a panic.
Now that we no longer need to acquire the BRIDGE_LOCK for
bridge_transmit() this should no longer panic. Test this.
PR: 216510
Reviewed by: emaste, philip
MFC after: 2 months
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24251
Notes
Notes:
svn path=/head/; revision=360346
-rwxr-xr-x | tests/sys/net/if_bridge_test.sh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/sys/net/if_bridge_test.sh b/tests/sys/net/if_bridge_test.sh index 111281799e9d..a20eae49998f 100755 --- a/tests/sys/net/if_bridge_test.sh +++ b/tests/sys/net/if_bridge_test.sh @@ -309,12 +309,40 @@ mac_conflict_cleanup() vnet_cleanup } +atf_test_case "inherit_mac" "cleanup" +inherit_mac_head() +{ + atf_set descr 'Bridge inherit_mac test, #216510' + atf_set require.user root +} + +inherit_mac_body() +{ + vnet_init + + bridge=$(vnet_mkbridge) + epair=$(vnet_mkepair) + vnet_mkjail one ${bridge} ${epair}a + + jexec one sysctl net.link.bridge.inherit_mac=1 + + # Attempt to provoke the panic described in #216510 + jexec one ifconfig ${bridge} 192.0.0.1/24 up + jexec one ifconfig ${bridge} addm ${epair}a +} + +inherit_mac_cleanup() +{ + vnet_cleanup +} + atf_init_test_cases() { atf_add_test_case "bridge_transmit_ipv4_unicast" atf_add_test_case "stp" atf_add_test_case "static" atf_add_test_case "span" + atf_add_test_case "inherit_mac" atf_add_test_case "delete_with_members" atf_add_test_case "mac_conflict" } |