From 8faaa4d5a85e707196423277941370391b51a8eb Mon Sep 17 00:00:00 2001 From: Noa Osherovich Date: Thu, 5 Dec 2013 10:24:55 +0200 Subject: [PATCH] ipoib: added an error message when trying to change mtu to 2K-4K Max mtu defined by IB is 4K, but mcast_mtu is limited to 2K, so any request to change mtu to a value between 2K-4K didn't change the mtu, but also didn't show an error message. An error value (-EINVAL) is now returned and an ipoib_warn is issued in such cases. Signed-off-by: Noa Osherovich (Ported from Mellanox OFED 2.4) Signed-off-by: Mukesh Kacker --- drivers/infiniband/ulp/ipoib/ipoib_main.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c index f2dc1c4553337..9f9864b42c0b0 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -218,6 +218,11 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu) priv->admin_mtu = new_mtu; dev->mtu = min(priv->mcast_mtu, priv->admin_mtu); + if (dev->mtu < new_mtu) { + ipoib_warn(priv, "mtu must be smaller than mcast_mtu (%d)\n", + priv->mcast_mtu); + return -EINVAL; + } return 0; } -- 2.51.0