/* For one reason or another this nlh isn't getting delivered to the userspace audit daemon, just send it to printk.  */
static void audit_printk_skb(struct sk_buff *skb)
/* For one reason or another this nlh isn't getting delivered to the userspace audit daemon, just send it to printk.  */
static void audit_printk_skb(struct sk_buff *skb)
{
	struct nlmsghdr *nlh = nlmsg_hdr(skb);
	char *data = NLMSG_DATA(nlh);
	if (nlh->nlmsg_type != AUDIT_EOE) {
		if (printk_ratelimit())
			printk(KERN_NOTICE "type=%d %s\n", nlh->nlmsg_type, data);
		else
			audit_log_lost("printk limit exceeded\n");
	}
	audit_hold_skb(skb);
}