aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--datapath/datapath.c5
-rw-r--r--datapath/dp_notify.c5
-rw-r--r--datapath/vport-internal_dev.c8
3 files changed, 4 insertions, 14 deletions
diff --git a/datapath/datapath.c b/datapath/datapath.c
index 83dd76fe..71a44e6f 100644
--- a/datapath/datapath.c
+++ b/datapath/datapath.c
@@ -428,8 +428,7 @@ got_port_no:
if (err)
goto out_unlock_dp;
- if (!(port.flags & ODP_PORT_INTERNAL))
- set_internal_devs_mtu(dp);
+ set_internal_devs_mtu(dp);
dp_sysfs_add_if(dp->ports[port_no]);
err = __put_user(port_no, &portp->port);
@@ -1358,7 +1357,7 @@ int dp_min_mtu(const struct datapath *dp)
}
/* Sets the MTU of all datapath devices to the minimum of the ports. Must
- * be called with RTNL lock and dp_mutex. */
+ * be called with RTNL lock. */
void set_internal_devs_mtu(const struct datapath *dp)
{
struct dp_port *p;
diff --git a/datapath/dp_notify.c b/datapath/dp_notify.c
index 4a16a93f..e73a731a 100644
--- a/datapath/dp_notify.c
+++ b/datapath/dp_notify.c
@@ -54,11 +54,8 @@ static int dp_device_event(struct notifier_block *unused, unsigned long event,
break;
case NETDEV_CHANGEMTU:
- if (!is_internal_dev(dev)) {
- mutex_lock(&dp->mutex);
+ if (!is_internal_dev(dev))
set_internal_devs_mtu(dp);
- mutex_unlock(&dp->mutex);
- }
break;
}
return NOTIFY_DONE;
diff --git a/datapath/vport-internal_dev.c b/datapath/vport-internal_dev.c
index 39283e05..88b6cc19 100644
--- a/datapath/vport-internal_dev.c
+++ b/datapath/vport-internal_dev.c
@@ -144,13 +144,7 @@ static int internal_dev_change_mtu(struct net_device *netdev, int new_mtu)
return -EINVAL;
if (dp_port) {
- int min_mtu;
-
- mutex_lock(&dp_port->dp->mutex);
- min_mtu = dp_min_mtu(dp_port->dp);
- mutex_unlock(&dp_port->dp->mutex);
-
- if (new_mtu > min_mtu)
+ if (new_mtu > dp_min_mtu(dp_port->dp))
return -EINVAL;
}