ev->k.cmd_req.typeid = cmd->session->target->typeid;
int tgt_uspace_cmd_send(struct tgt_cmd *cmd){	struct tgt_protocol *proto = cmd->session->target->proto;	struct sk_buff *skb;	struct nlmsghdr *nlh;	struct tgt_event *ev;	char *pdu;	int len, proto_pdu_size = proto->uspace_pdu_size;	len = NLMSG_SPACE(sizeof(*ev) + proto_pdu_size);	skb = alloc_skb(NLMSG_SPACE(len), GFP_KERNEL);	if (!skb)		return -ENOMEM;	dprintk("%d %Zd %d\n", len, sizeof(*ev), proto_pdu_size);	nlh = __nlmsg_put(skb, tgtd_pid, 0, TGT_KEVENT_CMD_REQ,			  len - sizeof(*nlh), 0);	ev = NLMSG_DATA(nlh);	memset(ev, 0, sizeof(*ev));	pdu = (char *) ev->data;	ev->k.cmd_req.tid = cmd->session->target->tid;	ev->k.cmd_req.dev_id = cmd->dev_id;	ev->k.cmd_req.cid = cmd->cid;	proto->build_uspace_pdu(cmd, pdu);	return netlink_unicast(nls, skb, tgtd_pid, 0);}