On Tue, May 23, 2017 at 11:56:45AM +0300, Yuval Shaia wrote: > On Tue, May 23, 2017 at 11:42:52AM +0300, Leon Romanovsky wrote: > > From: Erez Shitrit <erezsh@xxxxxxxxxxxx> > > > > This patch checks if there is a driver below that > > Is it "below" or "upper" in the driver hierarchy? The part which close to the HW. I called it "below". > > > needs to be updated on the new MTU and calls it > > accordingly. > > > > Signed-off-by: Erez Shitrit <erezsh@xxxxxxxxxxxx> > > Reviewed by: Alex Vesker <valex@xxxxxxxxxxxx> > > Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> > > --- > > drivers/infiniband/ulp/ipoib/ipoib_main.c | 19 +++++++++++++++++-- > > 1 file changed, 17 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > index 2869d1adb1de..28068140800c 100644 > > --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c > > @@ -233,6 +233,7 @@ static netdev_features_t ipoib_fix_features(struct net_device *dev, netdev_featu > > static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > > { > > struct ipoib_dev_priv *priv = ipoib_priv(dev); > > + int ret = 0; > > > > /* dev->mtu > 2K ==> connected mode */ > > if (ipoib_cm_admin_enabled(dev)) { > > @@ -256,9 +257,23 @@ static int ipoib_change_mtu(struct net_device *dev, int new_mtu) > > ipoib_dbg(priv, "MTU must be smaller than the underlying " > > "link layer MTU - 4 (%u)\n", priv->mcast_mtu); > > > > - dev->mtu = min(priv->mcast_mtu, priv->admin_mtu); > > + new_mtu = min(priv->mcast_mtu, priv->admin_mtu); > > > > - return 0; > > + if (priv->rn_ops->ndo_change_mtu) { > > + bool carrier_status = netif_carrier_ok(dev); > > + > > + netif_carrier_off(dev); > > + > > + /* notify lower level on the real mtu */ > > + ret = priv->rn_ops->ndo_change_mtu(dev, new_mtu); > > + > > + if (carrier_status) > > + netif_carrier_on(dev); > > + } else { > > + dev->mtu = new_mtu; > > + } > > So we don't want dev->mtu to be updated if driver was registered? It is updated in ndo_change_mtu call. See nes. cxgb3/4 and mlx4/5 as an example. > > > + > > + return ret; > > } > > > > /* Called with an RCU read lock taken */ > > -- > > 2.12.2 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html
Attachment:
signature.asc
Description: PGP signature