Ignore VLAN events where the orig_dev is the bridge device itself.

Signed-off-by: Petr Machata <pe...@mellanox.com>
Reviewed-by: Vivien Didelot <vivien.dide...@savoirfairelinux.com>
---
 net/dsa/port.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/net/dsa/port.c b/net/dsa/port.c
index 2413beb..ed05954 100644
--- a/net/dsa/port.c
+++ b/net/dsa/port.c
@@ -252,6 +252,9 @@ int dsa_port_vlan_add(struct dsa_port *dp,
                .vlan = vlan,
        };
 
+       if (netif_is_bridge_master(vlan->obj.orig_dev))
+               return -EOPNOTSUPP;
+
        if (br_vlan_enabled(dp->bridge_dev))
                return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_ADD, &info);
 
@@ -267,6 +270,9 @@ int dsa_port_vlan_del(struct dsa_port *dp,
                .vlan = vlan,
        };
 
+       if (netif_is_bridge_master(vlan->obj.orig_dev))
+               return -EOPNOTSUPP;
+
        if (br_vlan_enabled(dp->bridge_dev))
                return dsa_port_notify(dp, DSA_NOTIFIER_VLAN_DEL, &info);
 
-- 
2.4.11

Reply via email to