diff options
Diffstat (limited to 'drivers/net/ipvlan/ipvlan_main.c')
-rw-r--r-- | drivers/net/ipvlan/ipvlan_main.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c index 14f1cbd3b96f..c3d3e458f541 100644 --- a/drivers/net/ipvlan/ipvlan_main.c +++ b/drivers/net/ipvlan/ipvlan_main.c | |||
@@ -85,10 +85,12 @@ static int ipvlan_set_port_mode(struct ipvl_port *port, u16 nval, | |||
85 | flags = ipvlan->dev->flags; | 85 | flags = ipvlan->dev->flags; |
86 | if (nval == IPVLAN_MODE_L3 || nval == IPVLAN_MODE_L3S) { | 86 | if (nval == IPVLAN_MODE_L3 || nval == IPVLAN_MODE_L3S) { |
87 | err = dev_change_flags(ipvlan->dev, | 87 | err = dev_change_flags(ipvlan->dev, |
88 | flags | IFF_NOARP); | 88 | flags | IFF_NOARP, |
89 | extack); | ||
89 | } else { | 90 | } else { |
90 | err = dev_change_flags(ipvlan->dev, | 91 | err = dev_change_flags(ipvlan->dev, |
91 | flags & ~IFF_NOARP); | 92 | flags & ~IFF_NOARP, |
93 | extack); | ||
92 | } | 94 | } |
93 | if (unlikely(err)) | 95 | if (unlikely(err)) |
94 | goto fail; | 96 | goto fail; |
@@ -117,9 +119,11 @@ fail: | |||
117 | flags = ipvlan->dev->flags; | 119 | flags = ipvlan->dev->flags; |
118 | if (port->mode == IPVLAN_MODE_L3 || | 120 | if (port->mode == IPVLAN_MODE_L3 || |
119 | port->mode == IPVLAN_MODE_L3S) | 121 | port->mode == IPVLAN_MODE_L3S) |
120 | dev_change_flags(ipvlan->dev, flags | IFF_NOARP); | 122 | dev_change_flags(ipvlan->dev, flags | IFF_NOARP, |
123 | NULL); | ||
121 | else | 124 | else |
122 | dev_change_flags(ipvlan->dev, flags & ~IFF_NOARP); | 125 | dev_change_flags(ipvlan->dev, flags & ~IFF_NOARP, |
126 | NULL); | ||
123 | } | 127 | } |
124 | 128 | ||
125 | return err; | 129 | return err; |