|
@@ -181,8 +181,10 @@ void hsr_del_port(struct hsr_port *port)
|
|
list_del_rcu(&port->port_list);
|
|
list_del_rcu(&port->port_list);
|
|
|
|
|
|
if (port != master) {
|
|
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);
|
|
netdev_rx_handler_unregister(port->dev);
|
|
dev_set_promiscuity(port->dev, -1);
|
|
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);
|
|
}
|
|
}
|