> @@ -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