[patch 2/3] sem2mutex: audit_netlink_sem

akpm at osdl.org akpm at osdl.org
Wed Mar 8 07:51:38 UTC 2006


From: Ingo Molnar <mingo at elte.hu>

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 <mingo at elte.hu>
Cc: David Woodhouse <dwmw2 at infradead.org>
Signed-off-by: Andrew Morton <akpm at osdl.org>
---

 kernel/audit.c       |    6 +++---
 kernel/audit.h       |    3 ++-
 kernel/auditfilter.c |   16 ++++++++--------
 3 files changed, 13 insertions(+), 12 deletions(-)

diff -puN kernel/audit.c~sem2mutex-audit_netlink_sem kernel/audit.c
--- devel/kernel/audit.c~sem2mutex-audit_netlink_sem	2006-03-03 00:55:30.000000000 -0800
+++ devel-akpm/kernel/audit.c	2006-03-03 00:55:30.000000000 -0800
@@ -114,7 +114,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
@@ -538,14 +538,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-03-03 00:55:30.000000000 -0800
+++ devel-akpm/kernel/auditfilter.c	2006-03-03 00:55:30.000000000 -0800
@@ -329,7 +329,7 @@ static int audit_compare_rule(struct aud
 }
 
 /* Add rule to given filterlist if not a duplicate.  Protected by
- * audit_netlink_sem. */
+ * audit_netlink_mutex. */
 static inline int audit_add_rule(struct audit_entry *entry,
 				  struct list_head *list)
 {
@@ -359,7 +359,7 @@ static inline int audit_add_rule(struct 
 }
 
 /* Remove an existing rule from filterlist.  Protected by
- * audit_netlink_sem. */
+ * audit_netlink_mutex. */
 static inline int audit_del_rule(struct audit_entry *entry,
 				 struct list_head *list)
 {
@@ -394,10 +394,10 @@ static int audit_list(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<AUDIT_NR_FILTERS; i++) {
 		list_for_each_entry(entry, &audit_filter_list[i], list) {
 			struct audit_rule *rule;
@@ -412,7 +412,7 @@ static int audit_list(void *_dest)
 	}
 	audit_send_reply(pid, seq, AUDIT_LIST, 1, 1, NULL, 0);
 	
-	up(&audit_netlink_sem);
+	mutex_unlock(&audit_netlink_mutex);
 	return 0;
 }
 
@@ -428,10 +428,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<AUDIT_NR_FILTERS; i++) {
 		list_for_each_entry(e, &audit_filter_list[i], list) {
 			struct audit_rule_data *data;
@@ -446,7 +446,7 @@ static int audit_list_rules(void *_dest)
 	}
 	audit_send_reply(pid, seq, AUDIT_LIST_RULES, 1, 1, NULL, 0);
 
-	up(&audit_netlink_sem);
+	mutex_unlock(&audit_netlink_mutex);
 	return 0;
 }
 
diff -puN kernel/audit.h~sem2mutex-audit_netlink_sem kernel/audit.h
--- devel/kernel/audit.h~sem2mutex-audit_netlink_sem	2006-03-03 00:55:30.000000000 -0800
+++ devel-akpm/kernel/audit.h	2006-03-03 00:55:30.000000000 -0800
@@ -19,6 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
+#include <linux/mutex.h>
 #include <linux/fs.h>
 #include <linux/audit.h>
 
@@ -84,4 +85,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;
_




More information about the Linux-audit mailing list