> +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 <[email protected]> || For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/index.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html