On Mon, Dec 11, 2023 at 03:22:17PM +0200, Leon Romanovsky wrote: > Please fill some text in commit message. Yes, explain *why* you are doing this > > diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c > > index 5b3154503bf4..ae2c05806dcc 100644 > > --- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c > > +++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c > > @@ -536,17 +536,17 @@ static int ipoib_mcast_join(struct net_device *dev, struct ipoib_mcast *mcast) > > multicast = ib_sa_join_multicast(&ipoib_sa_client, priv->ca, priv->port, > > &rec, comp_mask, GFP_KERNEL, > > ipoib_mcast_join_complete, mcast); > > - spin_lock_irq(&priv->lock); > > if (IS_ERR(multicast)) { > > ret = PTR_ERR(multicast); > > ipoib_warn(priv, "ib_sa_join_multicast failed, status %d\n", ret); > > + spin_lock_irq(&priv->lock); > > /* Requeue this join task with a backoff delay */ > > __ipoib_mcast_schedule_join_thread(priv, mcast, 1); > > clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags); > > spin_unlock_irq(&priv->lock); > > complete(&mcast->done); > > - spin_lock_irq(&priv->lock); It is super weird to unlock just around complete. Jason