diff options
author | John Stultz <john.stultz@linaro.org> | 2013-05-15 12:42:15 -0700 |
---|---|---|
committer | John Stultz <john.stultz@linaro.org> | 2013-05-15 12:42:15 -0700 |
commit | 15a6affec4449b54afba15ab7edbad0cac2736d3 (patch) | |
tree | f2fa815f74be0b56acd05e62113600a7113d48a9 /ipc/sem.c | |
parent | cd432fc233f4e7aba43b4fe499a4445f0f6ee1c6 (diff) | |
parent | f722406faae2d073cc1d01063d1123c35425939e (diff) |
Merge tag 'v3.10-rc1' into linaro-android-3.10-experimental-mergetracking-linaro-android-3.10-llct-20130518.0
Linux 3.10-rc1
Diffstat (limited to 'ipc/sem.c')
-rw-r--r-- | ipc/sem.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ipc/sem.c b/ipc/sem.c index 899b598b63be..a7e40ed8a076 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -796,6 +796,13 @@ static int count_semncnt (struct sem_array * sma, ushort semnum) struct sem_queue * q; semncnt = 0; + list_for_each_entry(q, &sma->sem_base[semnum].sem_pending, list) { + struct sembuf * sops = q->sops; + BUG_ON(sops->sem_num != semnum); + if ((sops->sem_op < 0) && !(sops->sem_flg & IPC_NOWAIT)) + semncnt++; + } + list_for_each_entry(q, &sma->sem_pending, list) { struct sembuf * sops = q->sops; int nsops = q->nsops; @@ -815,6 +822,13 @@ static int count_semzcnt (struct sem_array * sma, ushort semnum) struct sem_queue * q; semzcnt = 0; + list_for_each_entry(q, &sma->sem_base[semnum].sem_pending, list) { + struct sembuf * sops = q->sops; + BUG_ON(sops->sem_num != semnum); + if ((sops->sem_op == 0) && !(sops->sem_flg & IPC_NOWAIT)) + semzcnt++; + } + list_for_each_entry(q, &sma->sem_pending, list) { struct sembuf * sops = q->sops; int nsops = q->nsops; |