On Tue, May 26, 2026 at 09:48:18AM +0300, Ido Schimmel wrote:
> +# Test that changing bridge port flags via the netlink path does not sleep
> with
> +# the bridge spin lock held.
> +kci_test_bridge_promisc_netlink()
> +{
> + local dummy="test_dummy1"
> + local bridge="test_br1"
> + local team="test_team1"
> + local ret=0
> +
> + run_cmd ip link add $team up type team
> + run_cmd ip link add $bridge up type bridge vlan_filtering 1
> + run_cmd ip link add $dummy up type dummy
> + run_cmd ip link set $dummy master $bridge
> + run_cmd ip link set $team master $bridge
> +
> + # This causes the bridge driver to sync all the static FDB entries to
> + # the team device (which supports unicast filtering) and remove it from
> + # promiscuous mode. The call to dev_set_promiscuity() can sleep due to
> + # Rx mode inlining, which is a problem if the bridge spin lock is held.
> + run_cmd bridge link set dev $dummy flood off learning off
> +
> + run_cmd ip link del $dummy
> + run_cmd ip link del $bridge
> + run_cmd ip link del $team
> +
> + end_test "PASS: bridge_promisc_netlink"
> +}
Both Sashikos complain about this passing even we failed to create the
team device ("for example with CONFIG_NET_TEAM=n or an iproute2 build
without team support").
We have CONFIG_NET_TEAM=y in tools/testing/selftests/net/config and we
can't assume we are running with ancient iproute2.