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);