aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ipvlan/ipvlan_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ipvlan/ipvlan_main.c')
-rw-r--r--drivers/net/ipvlan/ipvlan_main.c12
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;