/* All the CM events are handled on a work queue to have a safe context.  */
static int sched(struct t3cdev *tdev, struct sk_buff *skb, void *ctx)
/* All the CM events are handled on a work queue to have a safe context.  */
static int sched(struct t3cdev *tdev, struct sk_buff *skb, void *ctx)
{
	struct iwch_ep_common *epc = ctx;
	get_ep(epc);
	*((void **) skb->cb) = ctx;
	*((struct t3cdev **) (skb->cb + sizeof(void *))) = tdev;
	skb_queue_tail(&rxq, skb);
	queue_work(workq, &skb_work);
	return 0;
}