svn commit: r341536 - head/sys/ofed/drivers/infiniband/ulp/ipoib
Slava Shwartsman
slavash at FreeBSD.org
Wed Dec 5 13:26:18 UTC 2018
Author: slavash
Date: Wed Dec 5 13:26:17 2018
New Revision: 341536
URL: https://svnweb.freebsd.org/changeset/base/341536
Log:
ipoib: Don't do a light flush when MTU is unchanged.
When changing the MTU of ibX network interfaces, check that the MTU was really
changed before requesting an update of the multicast rules. Else we might go
into an infinite loop joining and leaving ibX multicast groups towards the
opensm master interface.
Submitted by: hselasky@
Approved by: hselasky (mentor)
MFC after: 1 week
Sponsored by: Mellanox Technologies
Modified:
head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
Modified: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c
==============================================================================
--- head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Wed Dec 5 13:25:47 2018 (r341535)
+++ head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_main.c Wed Dec 5 13:26:17 2018 (r341536)
@@ -305,9 +305,11 @@ ipoib_change_mtu(struct ipoib_dev_priv *priv, int new_
priv->admin_mtu = new_mtu;
error = ipoib_propagate_ifnet_mtu(priv, min(priv->mcast_mtu,
priv->admin_mtu), propagate);
- if (error == 0)
- queue_work(ipoib_workqueue, &priv->flush_light);
- else
+ if (error == 0) {
+ /* check for MTU change to avoid infinite loop */
+ if (prev_admin_mtu != new_mtu)
+ queue_work(ipoib_workqueue, &priv->flush_light);
+ } else
priv->admin_mtu = prev_admin_mtu;
return (error);
}
More information about the svn-src-head
mailing list