IPoIB: Use rtnl lock/unlock when changing device flags

Use of this lock is required to synchronize changes to the netdvice's
data structs.  Also move the call to ipoib_flush_paths() after the
modification of the netdevice flags in set_mode().

Signed-off-by: Eli Cohen <eli@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
Eli Cohen
2008-07-14 23:48:51 -07:00
committed by Roland Dreier
parent 9eae554c17
commit c8c2afe360
2 changed files with 10 additions and 3 deletions

View File

@@ -575,8 +575,11 @@ void ipoib_mcast_join_task(struct work_struct *work)
priv->mcast_mtu = IPOIB_UD_MTU(ib_mtu_enum_to_int(priv->broadcast->mcmember.mtu));
if (!ipoib_cm_admin_enabled(dev))
if (!ipoib_cm_admin_enabled(dev)) {
rtnl_lock();
dev->mtu = min(priv->mcast_mtu, priv->admin_mtu);
rtnl_unlock();
}
ipoib_dbg_mcast(priv, "successfully joined all multicast groups\n");