projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge remote-tracking branch 'asoc/fix/intel' into asoc-linus
[firefly-linux-kernel-4.4.55.git]
/
net
/
hsr
/
hsr_slave.c
diff --git
a/net/hsr/hsr_slave.c
b/net/hsr/hsr_slave.c
index a348dcbcd683e6858248bf17ee73e7e24d08b4ea..7d37366cc695554ae243f940869b46d26f598b65 100644
(file)
--- a/
net/hsr/hsr_slave.c
+++ b/
net/hsr/hsr_slave.c
@@
-181,8
+181,10
@@
void hsr_del_port(struct hsr_port *port)
list_del_rcu(&port->port_list);
if (port != master) {
list_del_rcu(&port->port_list);
if (port != master) {
- netdev_update_features(master->dev);
- dev_set_mtu(master->dev, hsr_get_max_mtu(hsr));
+ if (master != NULL) {
+ netdev_update_features(master->dev);
+ dev_set_mtu(master->dev, hsr_get_max_mtu(hsr));
+ }
netdev_rx_handler_unregister(port->dev);
dev_set_promiscuity(port->dev, -1);
}
netdev_rx_handler_unregister(port->dev);
dev_set_promiscuity(port->dev, -1);
}
@@
-192,5
+194,7
@@
void hsr_del_port(struct hsr_port *port)
*/
synchronize_rcu();
*/
synchronize_rcu();
- dev_put(port->dev);
+
+ if (port != master)
+ dev_put(port->dev);
}
}