aboutsummaryrefslogtreecommitdiffstats
path: root/net/hsr/hsr_slave.c
diff options
context:
space:
mode:
authorArvid Brodin <arvid.brodin@alten.se>2014-07-04 17:38:57 -0400
committerDavid S. Miller <davem@davemloft.net>2014-07-08 14:35:31 -0400
commit1cc1eb52734bfd2fc57c7b3337a11198e713580d (patch)
tree91d62f13216f866ccc2015c21a0d8962691f049c /net/hsr/hsr_slave.c
parentc5a7591172100269e426cf630da0f2dc8138a206 (diff)
net/hsr: Implemented .ndo_fix_features (better device features handling).
Signed-off-by: Arvid Brodin <arvid.brodin@alten.se> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/hsr/hsr_slave.c')
-rw-r--r--net/hsr/hsr_slave.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/hsr/hsr_slave.c b/net/hsr/hsr_slave.c
index fffd69297c3e..23817d0b765b 100644
--- a/net/hsr/hsr_slave.c
+++ b/net/hsr/hsr_slave.c
@@ -344,6 +344,7 @@ int hsr_add_port(struct hsr_priv *hsr, struct net_device *dev,
344 if (dev->hard_header_len + HSR_HLEN > master->dev->hard_header_len) 344 if (dev->hard_header_len + HSR_HLEN > master->dev->hard_header_len)
345 master->dev->hard_header_len = dev->hard_header_len + HSR_HLEN; 345 master->dev->hard_header_len = dev->hard_header_len + HSR_HLEN;
346 346
347 netdev_update_features(master->dev);
347 dev_set_mtu(master->dev, hsr_get_max_mtu(hsr)); 348 dev_set_mtu(master->dev, hsr_get_max_mtu(hsr));
348 349
349 return 0; 350 return 0;
@@ -363,6 +364,7 @@ void hsr_del_port(struct hsr_port *port)
363 list_del_rcu(&port->port_list); 364 list_del_rcu(&port->port_list);
364 365
365 if (port != master) { 366 if (port != master) {
367 netdev_update_features(master->dev);
366 dev_set_mtu(master->dev, hsr_get_max_mtu(hsr)); 368 dev_set_mtu(master->dev, hsr_get_max_mtu(hsr));
367 netdev_rx_handler_unregister(port->dev); 369 netdev_rx_handler_unregister(port->dev);
368 dev_set_promiscuity(port->dev, -1); 370 dev_set_promiscuity(port->dev, -1);