diff mbox series

[net-next] net: bridge: fix error in br_multicast_add_port when CONFIG_NET_SWITCHDEV=n

Message ID 20210421184420.1584100-1-olteanv@gmail.com (mailing list archive)
State Accepted
Commit 68f5c12abbc9b6f8c5eea16c62f8b7be70793163
Delegated to: Netdev Maintainers
Headers show
Series [net-next] net: bridge: fix error in br_multicast_add_port when CONFIG_NET_SWITCHDEV=n | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net-next
netdev/subject_prefix success Link
netdev/cc_maintainers warning 1 maintainers not CCed: bridge@lists.linux-foundation.org
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 8 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success Link

Commit Message

Vladimir Oltean April 21, 2021, 6:44 p.m. UTC
From: Vladimir Oltean <vladimir.oltean@nxp.com>

When CONFIG_NET_SWITCHDEV is disabled, the shim for switchdev_port_attr_set
inside br_mc_disabled_update returns -EOPNOTSUPP. This is not caught,
and propagated to the caller of br_multicast_add_port, preventing ports
from joining the bridge.

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Fixes: ae1ea84b33da ("net: bridge: propagate error code and extack from br_mc_disabled_update")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 net/bridge/br_multicast.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Florian Fainelli April 21, 2021, 6:45 p.m. UTC | #1
On 4/21/2021 11:44 AM, Vladimir Oltean wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> When CONFIG_NET_SWITCHDEV is disabled, the shim for switchdev_port_attr_set
> inside br_mc_disabled_update returns -EOPNOTSUPP. This is not caught,
> and propagated to the caller of br_multicast_add_port, preventing ports
> from joining the bridge.
> 
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Fixes: ae1ea84b33da ("net: bridge: propagate error code and extack from br_mc_disabled_update")
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>

Acked-by: Florian Fainelli <f.fainelli@gmail.com>

That was quick, thanks!
Christian Borntraeger April 21, 2021, 6:49 p.m. UTC | #2
On 21.04.21 20:44, Vladimir Oltean wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> When CONFIG_NET_SWITCHDEV is disabled, the shim for switchdev_port_attr_set
> inside br_mc_disabled_update returns -EOPNOTSUPP. This is not caught,
> and propagated to the caller of br_multicast_add_port, preventing ports
> from joining the bridge.
> 
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Fixes: ae1ea84b33da ("net: bridge: propagate error code and extack from br_mc_disabled_update")
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>

yes this works now:

Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>


> ---
>   net/bridge/br_multicast.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
> index 4daa95c913d0..2883601d5c8b 100644
> --- a/net/bridge/br_multicast.c
> +++ b/net/bridge/br_multicast.c
> @@ -1625,7 +1625,7 @@ int br_multicast_add_port(struct net_bridge_port *port)
>   				    br_opt_get(port->br,
>   					       BROPT_MULTICAST_ENABLED),
>   				    NULL);
> -	if (err)
> +	if (err && err != -EOPNOTSUPP)
>   		return err;
>   
>   	port->mcast_stats = netdev_alloc_pcpu_stats(struct bridge_mcast_stats);
>
Nikolay Aleksandrov April 21, 2021, 7:18 p.m. UTC | #3
On 21/04/2021 21:44, Vladimir Oltean wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> When CONFIG_NET_SWITCHDEV is disabled, the shim for switchdev_port_attr_set
> inside br_mc_disabled_update returns -EOPNOTSUPP. This is not caught,
> and propagated to the caller of br_multicast_add_port, preventing ports
> from joining the bridge.
> 
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Fixes: ae1ea84b33da ("net: bridge: propagate error code and extack from br_mc_disabled_update")
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
> ---
>  net/bridge/br_multicast.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
> index 4daa95c913d0..2883601d5c8b 100644
> --- a/net/bridge/br_multicast.c
> +++ b/net/bridge/br_multicast.c
> @@ -1625,7 +1625,7 @@ int br_multicast_add_port(struct net_bridge_port *port)
>  				    br_opt_get(port->br,
>  					       BROPT_MULTICAST_ENABLED),
>  				    NULL);
> -	if (err)
> +	if (err && err != -EOPNOTSUPP)
>  		return err;
>  
>  	port->mcast_stats = netdev_alloc_pcpu_stats(struct bridge_mcast_stats);
> 

Acked-by: Nikolay Aleksandrov <nikolay@nvidia.com>
patchwork-bot+netdevbpf@kernel.org April 21, 2021, 8:20 p.m. UTC | #4
Hello:

This patch was applied to netdev/net-next.git (refs/heads/master):

On Wed, 21 Apr 2021 21:44:20 +0300 you wrote:
> From: Vladimir Oltean <vladimir.oltean@nxp.com>
> 
> When CONFIG_NET_SWITCHDEV is disabled, the shim for switchdev_port_attr_set
> inside br_mc_disabled_update returns -EOPNOTSUPP. This is not caught,
> and propagated to the caller of br_multicast_add_port, preventing ports
> from joining the bridge.
> 
> [...]

Here is the summary with links:
  - [net-next] net: bridge: fix error in br_multicast_add_port when CONFIG_NET_SWITCHDEV=n
    https://git.kernel.org/netdev/net-next/c/68f5c12abbc9

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index 4daa95c913d0..2883601d5c8b 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1625,7 +1625,7 @@  int br_multicast_add_port(struct net_bridge_port *port)
 				    br_opt_get(port->br,
 					       BROPT_MULTICAST_ENABLED),
 				    NULL);
-	if (err)
+	if (err && err != -EOPNOTSUPP)
 		return err;
 
 	port->mcast_stats = netdev_alloc_pcpu_stats(struct bridge_mcast_stats);