diff options
author | Ingo Molnar <mingo@elte.hu> | 2011-04-19 01:55:58 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-04-19 01:56:17 -0400 |
commit | 68d2cf25d39324c54b5e42de7915c623a0917abe (patch) | |
tree | ff1291450d7e6630bc77ec1363c3db8d74fa58b0 /ipc | |
parent | 176fcc5c5f0131504a55e1e1d35389c49a9177c2 (diff) | |
parent | 5d2cd90922c778908bd0cd669e572a5b5eafd737 (diff) |
Merge branch 'perf/urgent' into perf/core
Merge reason: we'll be queueing up dependent changes.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/msg.c | 4 | ||||
-rw-r--r-- | ipc/sem.c | 2 | ||||
-rw-r--r-- | ipc/shm.c | 2 |
3 files changed, 4 insertions, 4 deletions
@@ -704,7 +704,7 @@ long do_msgsnd(int msqid, long mtype, void __user *mtext, | |||
704 | msq->q_stime = get_seconds(); | 704 | msq->q_stime = get_seconds(); |
705 | 705 | ||
706 | if (!pipelined_send(msq, msg)) { | 706 | if (!pipelined_send(msq, msg)) { |
707 | /* noone is waiting for this message, enqueue it */ | 707 | /* no one is waiting for this message, enqueue it */ |
708 | list_add_tail(&msg->m_list, &msq->q_messages); | 708 | list_add_tail(&msg->m_list, &msq->q_messages); |
709 | msq->q_cbytes += msgsz; | 709 | msq->q_cbytes += msgsz; |
710 | msq->q_qnum++; | 710 | msq->q_qnum++; |
@@ -842,7 +842,7 @@ long do_msgrcv(int msqid, long *pmtype, void __user *mtext, | |||
842 | * Disable preemption. We don't hold a reference to the queue | 842 | * Disable preemption. We don't hold a reference to the queue |
843 | * and getting a reference would defeat the idea of a lockless | 843 | * and getting a reference would defeat the idea of a lockless |
844 | * operation, thus the code relies on rcu to guarantee the | 844 | * operation, thus the code relies on rcu to guarantee the |
845 | * existance of msq: | 845 | * existence of msq: |
846 | * Prior to destruction, expunge_all(-EIRDM) changes r_msg. | 846 | * Prior to destruction, expunge_all(-EIRDM) changes r_msg. |
847 | * Thus if r_msg is -EAGAIN, then the queue not yet destroyed. | 847 | * Thus if r_msg is -EAGAIN, then the queue not yet destroyed. |
848 | * rcu_read_lock() prevents preemption between reading r_msg | 848 | * rcu_read_lock() prevents preemption between reading r_msg |
@@ -1362,7 +1362,7 @@ SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops, | |||
1362 | * semid identifiers are not unique - find_alloc_undo may have | 1362 | * semid identifiers are not unique - find_alloc_undo may have |
1363 | * allocated an undo structure, it was invalidated by an RMID | 1363 | * allocated an undo structure, it was invalidated by an RMID |
1364 | * and now a new array with received the same id. Check and fail. | 1364 | * and now a new array with received the same id. Check and fail. |
1365 | * This case can be detected checking un->semid. The existance of | 1365 | * This case can be detected checking un->semid. The existence of |
1366 | * "un" itself is guaranteed by rcu. | 1366 | * "un" itself is guaranteed by rcu. |
1367 | */ | 1367 | */ |
1368 | error = -EIDRM; | 1368 | error = -EIDRM; |
@@ -1056,7 +1056,7 @@ SYSCALL_DEFINE1(shmdt, char __user *, shmaddr) | |||
1056 | /* | 1056 | /* |
1057 | * We need look no further than the maximum address a fragment | 1057 | * We need look no further than the maximum address a fragment |
1058 | * could possibly have landed at. Also cast things to loff_t to | 1058 | * could possibly have landed at. Also cast things to loff_t to |
1059 | * prevent overflows and make comparisions vs. equal-width types. | 1059 | * prevent overflows and make comparisons vs. equal-width types. |
1060 | */ | 1060 | */ |
1061 | size = PAGE_ALIGN(size); | 1061 | size = PAGE_ALIGN(size); |
1062 | while (vma && (loff_t)(vma->vm_end - addr) <= size) { | 1062 | while (vma && (loff_t)(vma->vm_end - addr) <= size) { |