int ipoib_mcast_detach(struct net_device *dev, struct ib_device *hca, union ib_gid *mgid, u16 mlid) { struct ipoib_dev_priv *priv = ipoib_priv(dev); int ret; ret = ib_detach_mcast(priv->qp, mgid, mlid); return ret; }
int ipoib_mcast_detach(struct net_device *dev, u16 mlid, union ib_gid *mgid) { struct ipoib_dev_priv *priv = netdev_priv(dev); int ret; mutex_lock(&priv->mcast_mutex); ret = ib_detach_mcast(priv->qp, mgid, mlid); mutex_unlock(&priv->mcast_mutex); if (ret) ipoib_warn(priv, "ib_detach_mcast failed (result = %d)\n", ret); return ret; }