mctp: serial: enforce fixed MTU

The current serial driver requires a maximum MTU of 68, and it doesn't
make sense to set a MTU below the MCTP-required baseline (of 68) either.

This change sets the min_mtu & max_mtu of the mctp netdev, essentially
disallowing changes. By using these instead of a ndo_change_mtu op, we
get the netlink extacks reported too.

Signed-off-by: Jeremy Kerr <jk@codeconstruct.com.au>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jeremy Kerr 2021-11-25 14:07:38 +08:00 committed by Jakub Kicinski
parent 7bd9890f3d
commit d154cd078a

View File

@ -410,7 +410,14 @@ static const struct net_device_ops mctp_serial_netdev_ops = {
static void mctp_serial_setup(struct net_device *ndev) static void mctp_serial_setup(struct net_device *ndev)
{ {
ndev->type = ARPHRD_MCTP; ndev->type = ARPHRD_MCTP;
/* we limit at the fixed MTU, which is also the MCTP-standard
* baseline MTU, so is also our minimum
*/
ndev->mtu = MCTP_SERIAL_MTU; ndev->mtu = MCTP_SERIAL_MTU;
ndev->max_mtu = MCTP_SERIAL_MTU;
ndev->min_mtu = MCTP_SERIAL_MTU;
ndev->hard_header_len = 0; ndev->hard_header_len = 0;
ndev->addr_len = 0; ndev->addr_len = 0;
ndev->tx_queue_len = DEFAULT_TX_QUEUE_LEN; ndev->tx_queue_len = DEFAULT_TX_QUEUE_LEN;