On 05/14/2014 11:42 AM, Stephen Hemminger wrote: > On Wed, 14 May 2014 11:09:22 -0400 > Vlad Yasevich <vyasevic@xxxxxxxxxx> wrote: > >> @@ -58,6 +61,7 @@ static int store_flag(struct net_bridge_port *p, unsigned long v, >> >> if (flags != p->flags) { >> p->flags = flags; >> + br_port_flags_change(p, old_flags ^ flags); > > You are also xoring twice. > That's wrong... I've take care of that. > Why not: > > store_flag() > if (flags != p->flags) { > br_port_flags_change(p, flags); > p->flags = flags; > br_ifinfo_notify(RTM_NEWLINK, p); > This doesn't really make sense as flags_change handler will use current flag value and that would be wrong. We'd have to pass the new flags along, but that doesn't make sense either. I'll send the update shortly. Thanks -vlad