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);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to