[ofa-general] IPoIB kernel Oops -- race condition

Yossi Etigin yossi.openib at gmail.com
Sun Jun 28 13:04:53 PDT 2009


Jack Morgenstein wrote:
>  in ipoib_mcast_leave():
>          *** NEED TO WAIT HERE BEFORE CONTINUING (so that BUSY is cleared (mcast->mc is in error),
>          *** or BUSY flag is set and mcast->mc is a valid, non-NULL pointer ****
>          if (test_and_clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags))
>                ib_sa_free_multicast(mcast->mc);
>  
> - Jack

How about making the leave/free mcast operation take place on the ipoib_workqueue, on which
the join operation takes place? this way we can avoid this race, and more potential races
of this kind.

--Yossi





More information about the general mailing list