Re: [PATCH net 3/3] selftests: rtnetlink: Add bridge promiscuity tests

Ido Schimmel <[email protected]> Wed, 27 May 2026 11:25:14 +0300
Newsgroups dev.linux.lists.bridge,org.kernel.vger.netdev
Message-ID <20260527082514.GA443143@shredder>
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.