From: Ingo Molnar Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar Cc: David Woodhouse Signed-off-by: Andrew Morton --- kernel/audit.c | 6 +++--- kernel/audit.h | 3 ++- kernel/auditfilter.c | 10 +++++----- 3 files changed, 10 insertions(+), 9 deletions(-) diff -puN kernel/audit.c~sem2mutex-audit_netlink_sem kernel/audit.c --- devel/kernel/audit.c~sem2mutex-audit_netlink_sem 2006-01-18 23:44:21.000000000 -0800 +++ devel-akpm/kernel/audit.c 2006-01-18 23:44:21.000000000 -0800 @@ -113,7 +113,7 @@ static DECLARE_WAIT_QUEUE_HEAD(audit_bac /* The netlink socket is only to be read by 1 CPU, which lets us assume * that list additions and deletions never happen simultaneously in * auditsc.c */ -DECLARE_MUTEX(audit_netlink_sem); +DEFINE_MUTEX(audit_netlink_mutex); /* AUDIT_BUFSIZ is the size of the temporary buffer used for formatting * audit records. Since printk uses a 1024 byte buffer, this buffer @@ -523,14 +523,14 @@ static void audit_receive(struct sock *s struct sk_buff *skb; unsigned int qlen; - down(&audit_netlink_sem); + mutex_lock(&audit_netlink_mutex); for (qlen = skb_queue_len(&sk->sk_receive_queue); qlen; qlen--) { skb = skb_dequeue(&sk->sk_receive_queue); audit_receive_skb(skb); kfree_skb(skb); } - up(&audit_netlink_sem); + mutex_unlock(&audit_netlink_mutex); } diff -puN kernel/auditfilter.c~sem2mutex-audit_netlink_sem kernel/auditfilter.c --- devel/kernel/auditfilter.c~sem2mutex-audit_netlink_sem 2006-01-18 23:44:25.000000000 -0800 +++ devel-akpm/kernel/auditfilter.c 2006-01-18 23:44:25.000000000 -0800 @@ -97,7 +97,7 @@ static int audit_compare_rule(struct aud /* Note that audit_add_rule and audit_del_rule are called via * audit_receive() in audit.c, and are protected by - * audit_netlink_sem. */ + * audit_netlink_mutex. */ static inline int audit_add_rule(struct audit_rule *rule, struct list_head *list) { @@ -146,7 +146,7 @@ static inline void audit_free_rule(struc /* Note that audit_add_rule and audit_del_rule are called via * audit_receive() in audit.c, and are protected by - * audit_netlink_sem. */ + * audit_netlink_mutex. */ static inline int audit_del_rule(struct audit_rule *rule, struct list_head *list) { @@ -175,10 +175,10 @@ static int audit_list_rules(void *_dest) seq = dest[1]; kfree(dest); - down(&audit_netlink_sem); + mutex_lock(&audit_netlink_mutex); /* The *_rcu iterators not needed here because we are - always called with audit_netlink_sem held. */ + always called with audit_netlink_mutex held. */ for (i=0; i #include #include @@ -67,4 +68,4 @@ extern void audit_send_reply(int pi void *payload, int size); extern void audit_log_lost(const char *message); extern void audit_panic(const char *message); -extern struct semaphore audit_netlink_sem; +extern struct mutex audit_netlink_mutex; _