> +static void iboe_mcast_work_handler(struct work_struct *work)
 > +{
 > +    struct iboe_mcast_work *mw = container_of(work, struct iboe_mcast_work, 
 > work);
 > +    struct cma_multicast *mc = mw->mc;
 > +    struct ib_sa_multicast *m = mc->multicast.ib;
 > +
 > +    mc->multicast.ib->context = mc;
 > +    cma_ib_mc_handler(0, m);
 > +    kref_put(&mc->mcref, release_mc);
 > +    kfree(mw);
 > +}

I'm having a hard time working out why the iboe case needs to schedule
to a work queue here since its already in process context, right?  It
seems it would be really preferable to avoid all the extra pointer
munging and reference counting, and just call things directly.

 - 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