aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/audit.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/kernel/audit.c b/kernel/audit.c
index 8cc580316948..f9c6506536e6 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -644,6 +644,16 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
644 if (err) 644 if (err)
645 return err; 645 return err;
646 646
647 /* As soon as there's any sign of userspace auditd,
648 * start kauditd to talk to it */
649 if (!kauditd_task)
650 kauditd_task = kthread_run(kauditd_thread, NULL, "kauditd");
651 if (IS_ERR(kauditd_task)) {
652 err = PTR_ERR(kauditd_task);
653 kauditd_task = NULL;
654 return err;
655 }
656
647 seq = nlh->nlmsg_seq; 657 seq = nlh->nlmsg_seq;
648 data = nlmsg_data(nlh); 658 data = nlmsg_data(nlh);
649 659
@@ -895,10 +905,6 @@ static int __init audit_init(void)
895 else 905 else
896 audit_sock->sk_sndtimeo = MAX_SCHEDULE_TIMEOUT; 906 audit_sock->sk_sndtimeo = MAX_SCHEDULE_TIMEOUT;
897 907
898 kauditd_task = kthread_run(kauditd_thread, NULL, "kauditd");
899 if (IS_ERR(kauditd_task))
900 return PTR_ERR(kauditd_task);
901
902 skb_queue_head_init(&audit_skb_queue); 908 skb_queue_head_init(&audit_skb_queue);
903 skb_queue_head_init(&audit_skb_hold_queue); 909 skb_queue_head_init(&audit_skb_hold_queue);
904 audit_initialized = AUDIT_INITIALIZED; 910 audit_initialized = AUDIT_INITIALIZED;