/* This is the connector callback that delivers data that was sent from userspace.  */
static void cn_ulog_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
/* This is the connector callback that delivers data that was sent from userspace.  */
static void cn_ulog_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
{
	struct dm_ulog_request *tfr = (struct dm_ulog_request *)(msg + 1);
	if (!cap_raised(nsp->eff_cap, CAP_SYS_ADMIN))
		return;
	spin_lock(&receiving_list_lock);
	if (msg->len == 0)
		fill_pkg(msg, NULL);
	else if (msg->len < sizeof(*tfr))
		DMERR("Incomplete message received (expected %u, got %u): [%u]",
		      (unsigned)sizeof(*tfr), msg->len, msg->seq);
	else
		fill_pkg(NULL, tfr);
	spin_unlock(&receiving_list_lock);
}