Ilias Apalodimas <ilias.apalodimas@xxxxxxxxxx> writes: >> diff --git a/drivers/net/ethernet/rocker/rocker_main.c b/drivers/net/ethernet/rocker/rocker_main.c >> index e73e4fe..aeafdb9 100644 >> --- a/drivers/net/ethernet/rocker/rocker_main.c >> +++ b/drivers/net/ethernet/rocker/rocker_main.c >> @@ -1632,6 +1632,9 @@ rocker_world_port_obj_vlan_add(struct rocker_port *rocker_port, >> { >> struct rocker_world_ops *wops = rocker_port->rocker->wops; >> >> + if (netif_is_bridge_master(vlan->obj.orig_dev)) >> + return -EOPNOTSUPP; >> + > What will happen to the "bridge vlan add dev br0 vid X pvid untagged self" when > the lower level (the driver) returns -EOPNOTSUPP? Will it avoid adding a vlan on > the bridge ? No, it will still do it. The reasons are: - that's what currently happens anyway: none of the drivers has any support, yet the bridge logic is done - -EOPNOTSUPP is what switchdev_port_obj_*() return if switchdev is not compiled in In order to suppress the setting, return e.g. -EINVAL: # bridge vlan add dev br vid 111 self RTNETLINK answers: Invalid argument # bridge vlan show dev br port vlan ids br 1 PVID Egress Untagged Thanks, Petr _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel