mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
[PATCH] sem2mutex: ipc, id.sem
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 <[email protected]> Cc: Manfred Spraul <[email protected]> Signed-off-by: Lee Schermerhorn <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
14cc3e2b63
commit
5f921ae96f
7 changed files with 65 additions and 56 deletions
18
ipc/msg.c
18
ipc/msg.c
|
|
@ -28,6 +28,8 @@
|
|||
#include <linux/syscalls.h>
|
||||
#include <linux/audit.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
#include <asm/current.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include "util.h"
|
||||
|
|
@ -179,8 +181,8 @@ static void expunge_all(struct msg_queue* msq, int res)
|
|||
* removes the message queue from message queue ID
|
||||
* array, and cleans up all the messages associated with this queue.
|
||||
*
|
||||
* msg_ids.sem and the spinlock for this message queue is hold
|
||||
* before freeque() is called. msg_ids.sem remains locked on exit.
|
||||
* msg_ids.mutex and the spinlock for this message queue is hold
|
||||
* before freeque() is called. msg_ids.mutex remains locked on exit.
|
||||
*/
|
||||
static void freeque (struct msg_queue *msq, int id)
|
||||
{
|
||||
|
|
@ -208,7 +210,7 @@ asmlinkage long sys_msgget (key_t key, int msgflg)
|
|||
int id, ret = -EPERM;
|
||||
struct msg_queue *msq;
|
||||
|
||||
down(&msg_ids.sem);
|
||||
mutex_lock(&msg_ids.mutex);
|
||||
if (key == IPC_PRIVATE)
|
||||
ret = newque(key, msgflg);
|
||||
else if ((id = ipc_findkey(&msg_ids, key)) == -1) { /* key not used */
|
||||
|
|
@ -231,7 +233,7 @@ asmlinkage long sys_msgget (key_t key, int msgflg)
|
|||
}
|
||||
msg_unlock(msq);
|
||||
}
|
||||
up(&msg_ids.sem);
|
||||
mutex_unlock(&msg_ids.mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
@ -361,7 +363,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
|||
msginfo.msgmnb = msg_ctlmnb;
|
||||
msginfo.msgssz = MSGSSZ;
|
||||
msginfo.msgseg = MSGSEG;
|
||||
down(&msg_ids.sem);
|
||||
mutex_lock(&msg_ids.mutex);
|
||||
if (cmd == MSG_INFO) {
|
||||
msginfo.msgpool = msg_ids.in_use;
|
||||
msginfo.msgmap = atomic_read(&msg_hdrs);
|
||||
|
|
@ -372,7 +374,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
|||
msginfo.msgtql = MSGTQL;
|
||||
}
|
||||
max_id = msg_ids.max_id;
|
||||
up(&msg_ids.sem);
|
||||
mutex_unlock(&msg_ids.mutex);
|
||||
if (copy_to_user (buf, &msginfo, sizeof(struct msginfo)))
|
||||
return -EFAULT;
|
||||
return (max_id < 0) ? 0: max_id;
|
||||
|
|
@ -435,7 +437,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
down(&msg_ids.sem);
|
||||
mutex_lock(&msg_ids.mutex);
|
||||
msq = msg_lock(msqid);
|
||||
err=-EINVAL;
|
||||
if (msq == NULL)
|
||||
|
|
@ -489,7 +491,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
|||
}
|
||||
err = 0;
|
||||
out_up:
|
||||
up(&msg_ids.sem);
|
||||
mutex_unlock(&msg_ids.mutex);
|
||||
return err;
|
||||
out_unlock_up:
|
||||
msg_unlock(msq);
|
||||
|
|
|
|||
Loading…
Reference in a new issue