aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2020-04-26 16:27:03 +0000
committerKristof Provost <kp@FreeBSD.org>2020-04-26 16:27:03 +0000
commit5377560783d95b92fce3bea3caac37d2860b1d48 (patch)
tree49df7378038e4fefb026de8f78ac0db0bac69e3c
parentfffd27e5f3b9700b6556a8c4fbd9503593a5ba33 (diff)
downloadsrc-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-xtests/sys/net/if_bridge_test.sh28
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"
}