On Thu, 2014-04-24 at 11:38 -0700, Stephen Hemminger wrote: > On Thu, 24 Apr 2014 21:16:27 +0900 > Toshiaki Makita <makita.toshiaki@xxxxxxxxxxxxx> wrote: > > > +static int br_dev_newlink(struct net *src_net, struct net_device *dev, > > + struct nlattr *tb[], struct nlattr *data[]) > > +{ > > + int err; > > + struct net_bridge *br = netdev_priv(dev); > > + > > + if (tb[IFLA_ADDRESS]) { > > + spin_lock_bh(&br->lock); > > + br_stp_change_bridge_id(br, nla_data(tb[IFLA_ADDRESS])); > > + spin_unlock_bh(&br->lock); > > + } > > + > > + err = register_netdevice(dev); > > + if (err) > > + return err; > > + > > + return 0; > > +} > > Looks good. > > Why not just do simpler tail call?? > return register_netdevice(dev); Yes, It's simpler. I mimicked team_newlink()'s style, so we can also make it simpler later :) I'll send v2. Thanks, Toshiaki Makita