|
@@ -7523,13 +7523,15 @@ int __dev_set_mtu(struct net_device *dev, int new_mtu)
|
|
EXPORT_SYMBOL(__dev_set_mtu);
|
|
EXPORT_SYMBOL(__dev_set_mtu);
|
|
|
|
|
|
/**
|
|
/**
|
|
- * dev_set_mtu - Change maximum transfer unit
|
|
|
|
|
|
+ * dev_set_mtu_ext - Change maximum transfer unit
|
|
* @dev: device
|
|
* @dev: device
|
|
* @new_mtu: new transfer unit
|
|
* @new_mtu: new transfer unit
|
|
|
|
+ * @extack: netlink extended ack
|
|
*
|
|
*
|
|
* Change the maximum transfer size of the network device.
|
|
* Change the maximum transfer size of the network device.
|
|
*/
|
|
*/
|
|
-int dev_set_mtu(struct net_device *dev, int new_mtu)
|
|
|
|
|
|
+int dev_set_mtu_ext(struct net_device *dev, int new_mtu,
|
|
|
|
+ struct netlink_ext_ack *extack)
|
|
{
|
|
{
|
|
int err, orig_mtu;
|
|
int err, orig_mtu;
|
|
|
|
|
|
@@ -7538,14 +7540,12 @@ int dev_set_mtu(struct net_device *dev, int new_mtu)
|
|
|
|
|
|
/* MTU must be positive, and in range */
|
|
/* MTU must be positive, and in range */
|
|
if (new_mtu < 0 || new_mtu < dev->min_mtu) {
|
|
if (new_mtu < 0 || new_mtu < dev->min_mtu) {
|
|
- net_err_ratelimited("%s: Invalid MTU %d requested, hw min %d\n",
|
|
|
|
- dev->name, new_mtu, dev->min_mtu);
|
|
|
|
|
|
+ NL_SET_ERR_MSG(extack, "mtu less than device minimum");
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
if (dev->max_mtu > 0 && new_mtu > dev->max_mtu) {
|
|
if (dev->max_mtu > 0 && new_mtu > dev->max_mtu) {
|
|
- net_err_ratelimited("%s: Invalid MTU %d requested, hw max %d\n",
|
|
|
|
- dev->name, new_mtu, dev->max_mtu);
|
|
|
|
|
|
+ NL_SET_ERR_MSG(extack, "mtu greater than device maximum");
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -7573,6 +7573,17 @@ int dev_set_mtu(struct net_device *dev, int new_mtu)
|
|
}
|
|
}
|
|
return err;
|
|
return err;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+int dev_set_mtu(struct net_device *dev, int new_mtu)
|
|
|
|
+{
|
|
|
|
+ struct netlink_ext_ack extack;
|
|
|
|
+ int err;
|
|
|
|
+
|
|
|
|
+ err = dev_set_mtu_ext(dev, new_mtu, &extack);
|
|
|
|
+ if (err)
|
|
|
|
+ net_err_ratelimited("%s: %s\n", dev->name, extack._msg);
|
|
|
|
+ return err;
|
|
|
|
+}
|
|
EXPORT_SYMBOL(dev_set_mtu);
|
|
EXPORT_SYMBOL(dev_set_mtu);
|
|
|
|
|
|
/**
|
|
/**
|