/* If the listener has no buffer (NULL buffer), one is allocated for the right size (the amount of data received). @neh->ptr will point to the event payload, which always starts with a 'struct uwb_rceb'. kfree() it when done.  */
static struct uwb_rc_neh* uwb_rc_neh_lookup(struct uwb_rc *rc, const struct uwb_rceb *rceb)
/* If the listener has no buffer (NULL buffer), one is allocated for the right size (the amount of data received). @neh->ptr will point to the event payload, which always starts with a 'struct uwb_rceb'. kfree() it when done.  */
static struct uwb_rc_neh* uwb_rc_neh_lookup(struct uwb_rc *rc, const struct uwb_rceb *rceb)
{
	struct uwb_rc_neh *neh = NULL, *h;
	unsigned long flags;
	spin_lock_irqsave(&rc->neh_lock, flags);
	list_for_each_entry(h, &rc->neh_list, list_node) {
		if (uwb_rc_neh_match(h, rceb)) {
			neh = h;
			break;
		}
	}
	if (neh)
		__uwb_rc_neh_rm(rc, neh);
	spin_unlock_irqrestore(&rc->neh_lock, flags);
	return neh;
}