diff options
author | Arvid Brodin <arvid.brodin@alten.se> | 2014-07-04 17:38:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-07-08 14:35:31 -0400 |
commit | 1cc1eb52734bfd2fc57c7b3337a11198e713580d (patch) | |
tree | 91d62f13216f866ccc2015c21a0d8962691f049c /net/hsr/hsr_slave.c | |
parent | c5a7591172100269e426cf630da0f2dc8138a206 (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.c | 2 |
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); |