projects
/
platform
/
adaptation
/
renesas_rcar
/
renesas_kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[platform/adaptation/renesas_rcar/renesas_kernel.git]
/
ipc
/
msg.c
diff --git
a/ipc/msg.c
b/ipc/msg.c
index
9f29d9e
..
b65fdf1
100644
(file)
--- a/
ipc/msg.c
+++ b/
ipc/msg.c
@@
-680,16
+680,18
@@
long do_msgsnd(int msqid, long mtype, void __user *mtext,
goto out_unlock1;
}
goto out_unlock1;
}
+ ipc_lock_object(&msq->q_perm);
+
for (;;) {
struct msg_sender s;
err = -EACCES;
if (ipcperms(ns, &msq->q_perm, S_IWUGO))
for (;;) {
struct msg_sender s;
err = -EACCES;
if (ipcperms(ns, &msq->q_perm, S_IWUGO))
- goto out_unlock
1
;
+ goto out_unlock
0
;
err = security_msg_queue_msgsnd(msq, msg, msgflg);
if (err)
err = security_msg_queue_msgsnd(msq, msg, msgflg);
if (err)
- goto out_unlock
1
;
+ goto out_unlock
0
;
if (msgsz + msq->q_cbytes <= msq->q_qbytes &&
1 + msq->q_qnum <= msq->q_qbytes) {
if (msgsz + msq->q_cbytes <= msq->q_qbytes &&
1 + msq->q_qnum <= msq->q_qbytes) {
@@
-699,10
+701,9
@@
long do_msgsnd(int msqid, long mtype, void __user *mtext,
/* queue full, wait: */
if (msgflg & IPC_NOWAIT) {
err = -EAGAIN;
/* queue full, wait: */
if (msgflg & IPC_NOWAIT) {
err = -EAGAIN;
- goto out_unlock
1
;
+ goto out_unlock
0
;
}
}
- ipc_lock_object(&msq->q_perm);
ss_add(msq, &s);
if (!ipc_rcu_getref(msq)) {
ss_add(msq, &s);
if (!ipc_rcu_getref(msq)) {
@@
-730,10
+731,7
@@
long do_msgsnd(int msqid, long mtype, void __user *mtext,
goto out_unlock0;
}
goto out_unlock0;
}
- ipc_unlock_object(&msq->q_perm);
}
}
-
- ipc_lock_object(&msq->q_perm);
msq->q_lspid = task_tgid_vnr(current);
msq->q_stime = get_seconds();
msq->q_lspid = task_tgid_vnr(current);
msq->q_stime = get_seconds();