On 29/08/2022 10:52, Ido Schimmel wrote: > On Sun, Aug 28, 2022 at 12:23:30PM +0200, netdev@xxxxxxxxxxxxxxxxxxxx wrote: >> On 2022-08-27 17:19, Ido Schimmel wrote: >>> On Fri, Aug 26, 2022 at 01:45:33PM +0200, Hans Schultz wrote: >>>> >>>> nbp_switchdev_frame_mark(p, skb); >>>> @@ -943,6 +946,10 @@ static int br_setport(struct net_bridge_port >>>> *p, struct nlattr *tb[], >>>> br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_SUPPRESS, >>>> BR_NEIGH_SUPPRESS); >>>> br_set_port_flag(p, tb, IFLA_BRPORT_ISOLATED, BR_ISOLATED); >>>> br_set_port_flag(p, tb, IFLA_BRPORT_LOCKED, BR_PORT_LOCKED); >>>> + br_set_port_flag(p, tb, IFLA_BRPORT_MAB, BR_PORT_MAB); >>>> + >>>> + if (!(p->flags & BR_PORT_LOCKED)) >>>> + p->flags &= ~BR_PORT_MAB; >> >> The reason for this is that I wanted it to be so that if you have MAB >> enabled (and locked of course) and unlock the port, it will automatically >> clear both flags instead of having to first disable MAB and then unlock the >> port. > > User space can just do: > > # bridge link set dev swp1 locked off mab off > > I prefer not to push such logic into the kernel and instead fail > explicitly. I won't argue if more people are in favor. +1 I prefer to fail explicitly too, actually I also had a comment about this but somehow have managed to delete it before sending my review. :)