> @@ -1017,9 +1020,12 @@ static void ib_sa_add_one(struct ib_device *device)
 >      sa_dev->end_port   = e;
 >  
 >      for (i = 0; i <= e - s; ++i) {
 > +            spin_lock_init(&sa_dev->port[i].ah_lock);
 > +            if (rdma_port_link_layer(device, i + 1) != 
 > IB_LINK_LAYER_INFINIBAND)
 > +                    continue;

Not sure I understand why you move the initialization of the spinlock up
here?  It seems we ignore everything that might have to do with spinlock
if this is an IBoE port.

But the larger issue is what if someone calls one of the ib_sa_XXX_query
functions on an IBoE port?  Seems we just crash on uninitialized
structures.  I guess we're assuming that the kernel is smart enough not
to do that?

Also I'm wondering why you did the "count" stuff to ignore IBoE-only
devices in multicast.c but not sa_query.c?

 - R.
-- 
Roland Dreier <rola...@cisco.com> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
_______________________________________________
ewg mailing list
ewg@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg

Reply via email to