if (nlh->nlmsg_type != TGT_UEVENT_CMD_RES &&
if (nlh->nlmsg_type != TGT_UEVENT_START && nlh->nlmsg_type != TGT_UEVENT_CMD_RES &&
static int event_recv_skb(struct sk_buff *skb){	int err;	uint32_t rlen;	struct nlmsghdr	*nlh;	while (skb->len >= NLMSG_SPACE(0)) {		nlh = (struct nlmsghdr *) skb->data;		if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len)			return 0;		rlen = NLMSG_ALIGN(nlh->nlmsg_len);		if (rlen > skb->len)			rlen = skb->len;		err = event_recv_msg(skb, nlh);		eprintk("%d %d\n", nlh->nlmsg_type, err);		/*		 * TODO for passthru commands the lower level should		 * probably handle the result or we should modify this		 */		if (nlh->nlmsg_type != TGT_UEVENT_CMD_RES &&		    nlh->nlmsg_type != TGT_UEVENT_TARGET_PASSTHRU) {			struct tgt_event ev;			memset(&ev, 0, sizeof(ev));			ev.k.event_res.err = err;			send_event_res(TGT_KEVENT_RESPONSE, &ev, NULL, 0,				       GFP_KERNEL | __GFP_NOFAIL);		}		skb_pull(skb, rlen);	}	return 0;}