[openib-general] [PATCH] Encapsulate finding of id in sa_query.c
Sean Hefty
mshefty at ichips.intel.com
Mon Nov 8 11:07:54 PST 2004
Krishna Kumar wrote:
> Actually three places ... And IMO, it does make the locking code look
> cleaner, eg, the original code (with multiple unlocks) :
>
> void ib_sa_cancel_query(int id, struct ib_sa_query *query)
> {
> unsigned long flags;
>
> spin_lock_irqsave(&idr_lock, flags);
> if (idr_find(&query_idr, query->id) != query) {
> spin_unlock_irqrestore(&idr_lock, flags);
> return;
> }
> spin_unlock_irqrestore(&idr_lock, flags);
>
> ib_cancel_mad(query->port->agent, query->id);
I admit that I haven't looked at the SA code yet, but can
ib_sa_cancel_query pass straight through to ib_cancel_mad? Since the
lock is not held around both the find and the cancel, it seems possible.
- Sean
More information about the general
mailing list