On Tue, Jun 19, 2018 at 02:10:18PM -0700, Cong Wang wrote: > On Mon, Jun 18, 2018 at 7:04 AM, Hangbin Liu <liuhang...@gmail.com> wrote: > > @@ -94,10 +95,13 @@ static int ipvlan_set_port_mode(struct ipvl_port *port, > > u16 nval) > > mdev->l3mdev_ops = NULL; > > } > > list_for_each_entry(ipvlan, &port->ipvlans, pnode) { > > + flags = ipvlan->dev->flags; > > if (nval == IPVLAN_MODE_L3 || nval == > > IPVLAN_MODE_L3S) > > - ipvlan->dev->flags |= IFF_NOARP; > > + dev_change_flags(ipvlan->dev, > > + flags | IFF_NOARP); > > else > > - ipvlan->dev->flags &= ~IFF_NOARP; > > + dev_change_flags(ipvlan->dev, > > + flags & ~IFF_NOARP); > > You need to check the return value of dev_change_flags().
Hi Wang Cong, The only case dev_change_flags() return an err is when we change IFF_UP flag. Since we only set/reset IFF_NOARP, do you think we still need to check the return value? Thanks Hangbin