IPoIB: Copy child MTU from parent
authorEli Cohen <eli@dev.mellanox.co.il>
Tue, 29 Apr 2008 20:46:53 +0000 (13:46 -0700)
committerRoland Dreier <rolandd@cisco.com>
Tue, 29 Apr 2008 20:46:53 +0000 (13:46 -0700)
When creating a child interface, copy the MTU information from the
parent.  Otherwise when the child's multicast join completes, the MTU
will not be updated since the code does

dev->mtu = min(priv->mcast_mtu, priv->admin_mtu);

and priv->admin_mtu will be set to 0.

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib_vlan.c

index 431fdeaa2dc4f8075fd9ecb5c7b0b41382dcd207..1cdb5cfb0ff12f3cce46c149650cdd3e53f4bb87 100644 (file)
@@ -90,6 +90,9 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey)
        }
 
        priv->max_ib_mtu = ppriv->max_ib_mtu;
+       /* MTU will be reset when mcast join happens */
+       priv->dev->mtu   = IPOIB_UD_MTU(priv->max_ib_mtu);
+       priv->mcast_mtu  = priv->admin_mtu = priv->dev->mtu;
        set_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags);
 
        priv->pkey = pkey;