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: Stephen Smalley Cc: James Morris Cc: David Howells Signed-off-by: Andrew Morton --- security/keys/process_keys.c | 7 ++++--- security/selinux/selinuxfs.c | 21 +++++++++++---------- security/selinux/ss/services.c | 7 ++++--- 3 files changed, 19 insertions(+), 16 deletions(-) diff -puN security/keys/process_keys.c~sem2mutex-security security/keys/process_keys.c --- 25/security/keys/process_keys.c~sem2mutex-security Fri Jan 13 16:07:48 2006 +++ 25-akpm/security/keys/process_keys.c Fri Jan 13 16:07:48 2006 @@ -16,11 +16,12 @@ #include #include #include +#include #include #include "internal.h" /* session keyring create vs join semaphore */ -static DECLARE_MUTEX(key_session_sem); +static DEFINE_MUTEX(key_session_mutex); /* the root user's tracking struct */ struct key_user root_key_user = { @@ -711,7 +712,7 @@ long join_session_keyring(const char *na } /* allow the user to join or create a named keyring */ - down(&key_session_sem); + mutex_lock(&key_session_mutex); /* look for an existing keyring of this name */ keyring = find_keyring_by_name(name, 0); @@ -737,7 +738,7 @@ long join_session_keyring(const char *na key_put(keyring); error2: - up(&key_session_sem); + mutex_unlock(&key_session_mutex); error: return ret; diff -puN security/selinux/selinuxfs.c~sem2mutex-security security/selinux/selinuxfs.c --- 25/security/selinux/selinuxfs.c~sem2mutex-security Fri Jan 13 16:07:48 2006 +++ 25-akpm/security/selinux/selinuxfs.c Fri Jan 13 16:08:10 2006 @@ -22,8 +22,9 @@ #include #include #include +#include + #include -#include /* selinuxfs pseudo filesystem for exporting the security policy API. Based on the proc code and the fs/nfsd/nfsctl.c code. */ @@ -45,7 +46,7 @@ static int __init checkreqprot_setup(cha __setup("checkreqprot=", checkreqprot_setup); -static DECLARE_MUTEX(sel_sem); +static DEFINE_MUTEX(sel_mutex); /* global data for booleans */ static struct dentry *bool_dir = NULL; @@ -238,7 +239,7 @@ static ssize_t sel_write_load(struct fil ssize_t length; void *data = NULL; - down(&sel_sem); + mutex_lock(&sel_mutex); length = task_has_security(current, SECURITY__LOAD_POLICY); if (length) @@ -273,7 +274,7 @@ static ssize_t sel_write_load(struct fil "policy loaded auid=%u", audit_get_loginuid(current->audit_context)); out: - up(&sel_sem); + mutex_unlock(&sel_mutex); vfree(data); return length; } @@ -725,7 +726,7 @@ static ssize_t sel_read_bool(struct file int cur_enforcing; struct inode *inode; - down(&sel_sem); + mutex_lock(&sel_mutex); ret = -EFAULT; @@ -770,7 +771,7 @@ static ssize_t sel_read_bool(struct file *ppos = end; ret = count; out: - up(&sel_sem); + mutex_unlock(&sel_mutex); if (page) free_page((unsigned long)page); return ret; @@ -784,7 +785,7 @@ static ssize_t sel_write_bool(struct fil int new_value; struct inode *inode; - down(&sel_sem); + mutex_lock(&sel_mutex); length = task_has_security(current, SECURITY__SETBOOL); if (length) @@ -823,7 +824,7 @@ static ssize_t sel_write_bool(struct fil length = count; out: - up(&sel_sem); + mutex_unlock(&sel_mutex); if (page) free_page((unsigned long) page); return length; @@ -842,7 +843,7 @@ static ssize_t sel_commit_bools_write(st ssize_t length = -EFAULT; int new_value; - down(&sel_sem); + mutex_lock(&sel_mutex); length = task_has_security(current, SECURITY__SETBOOL); if (length) @@ -880,7 +881,7 @@ static ssize_t sel_commit_bools_write(st length = count; out: - up(&sel_sem); + mutex_unlock(&sel_mutex); if (page) free_page((unsigned long) page); return length; diff -puN security/selinux/ss/services.c~sem2mutex-security security/selinux/ss/services.c --- 25/security/selinux/ss/services.c~sem2mutex-security Fri Jan 13 16:07:48 2006 +++ 25-akpm/security/selinux/ss/services.c Fri Jan 13 16:07:48 2006 @@ -27,6 +27,7 @@ #include #include #include +#include #include #include "flask.h" #include "avc.h" @@ -48,9 +49,9 @@ static DEFINE_RWLOCK(policy_rwlock); #define POLICY_RDUNLOCK read_unlock(&policy_rwlock) #define POLICY_WRUNLOCK write_unlock_irq(&policy_rwlock) -static DECLARE_MUTEX(load_sem); -#define LOAD_LOCK down(&load_sem) -#define LOAD_UNLOCK up(&load_sem) +static DEFINE_MUTEX(load_sem); +#define LOAD_LOCK mutex_lock(&load_sem) +#define LOAD_UNLOCK mutex_unlock(&load_sem) static struct sidtab sidtab; struct policydb policydb; _