Re: [PATCH 5.12 081/363] net: bridge: propagate error code and extack from br_mc_disabled_update

From: Rudi Heitbaum
Date: Tue May 18 2021 - 08:25:09 EST


On Mon, May 17, 2021 at 03:59:07PM +0200, Greg Kroah-Hartman wrote:
> From: Florian Fainelli <f.fainelli@xxxxxxxxx>
>
> [ Upstream commit ae1ea84b33dab45c7b6c1754231ebda5959b504c ]
>
> Some Ethernet switches might only be able to support disabling multicast
> snooping globally, which is an issue for example when several bridges
> span the same physical device and request contradictory settings.
>
> Propagate the return value of br_mc_disabled_update() such that this
> limitation is transmitted correctly to user-space.
>
> Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
> Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>
> Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
> net/bridge/br_multicast.c | 28 +++++++++++++++++++++-------
> net/bridge/br_netlink.c | 4 +++-
> net/bridge/br_private.h | 3 ++-
> net/bridge/br_sysfs_br.c | 8 +-------
> 4 files changed, 27 insertions(+), 16 deletions(-)

This patch results in docker failing to start, and a regression between
5.12.4 and 5.12.5-rc1

A working dmesg output is like:

[ 11.545255] device eth0 entered promiscuous mode
[ 11.693848] process 'docker/tmp/qemu-check643160757/check' started with executable stack
[ 17.233059] br-92020c7e3aea: port 1(veth17a0552) entered blocking state
[ 17.233065] br-92020c7e3aea: port 1(veth17a0552) entered disabled state
[ 17.233098] device veth17a0552 entered promiscuous mode
[ 17.292839] docker0: port 2(veth9d227f5) entered blocking state
[ 17.292848] docker0: port 2(veth9d227f5) entered disabled state
[ 17.292946] device veth9d227f5 entered promiscuous mode
[ 17.293070] docker0: port 2(veth9d227f5) entered blocking state
[ 17.293075] docker0: port 2(veth9d227f5) entered forwarding state

with this patch "device veth17a0552 entered promiscuous mode" never
shows up.

the docker error itself is:

docker: Error response from daemon: failed to create endpoint
sleepy_dijkstra on network bridge: adding interface veth8cbd8f9 to
bridge docker0 failed: operation not supported.

Regards
Rudi