[openib-general] Re: [PATCH] ipoib_flush_paths
    Michael S. Tsirkin 
    mst at mellanox.co.il
       
    Wed Apr  5 16:40:23 PDT 2006
    
    
  
Quoting r. Roland Dreier <rdreier at cisco.com>:
> It looks safe to ib_sa_cancel_query() with a stale or NULL query pointer.
I don't think so. Look into ib_sa_cancel_query:
void ib_sa_cancel_query(int id, struct ib_sa_query *query)
{
        unsigned long flags;
        struct ib_mad_agent *agent;
        struct ib_mad_send_buf *mad_buf;
        spin_lock_irqsave(&idr_lock, flags);
        if (idr_find(&query_idr, id) != query) {            <--------- !!!
                spin_unlock_irqrestore(&idr_lock, flags);
                return;
        }
        agent = query->port->agent;
        mad_buf = query->mad_buf;
        spin_unlock_irqrestore(&idr_lock, flags);
        ib_cancel_mad(agent, mad_buf);
}
See what happens if you pass a stale id (query finished) and a NULL query?
-- 
MST
    
    
More information about the general
mailing list