From: Mounesh Sutar Date: Tue, 10 Jan 2017 06:33:17 +0000 (+0530) Subject: pcm: direct: returning semop error code for semaphore up/down failures X-Git-Tag: android-x86-9.0-r1~362 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3f0dc404f16af58d20b4489b0daafcf87555dfb7;p=android-x86%2Fexternal-alsa-lib.git pcm: direct: returning semop error code for semaphore up/down failures Signed-off-by: Mounesh Sutar Signed-off-by: Takashi Iwai --- diff --git a/src/pcm/pcm_direct.h b/src/pcm/pcm_direct.h index 91e816cc..aee38c5e 100644 --- a/src/pcm/pcm_direct.h +++ b/src/pcm/pcm_direct.h @@ -263,7 +263,10 @@ static inline int snd_pcm_direct_semaphore_down(snd_pcm_direct_t *dmix, int sem_ { struct sembuf op[2] = { { sem_num, 0, 0 }, { sem_num, 1, SEM_UNDO } }; int err = semop(dmix->semid, op, 2); - if (err == 0) dmix->locked[sem_num]++; + if (err == 0) + dmix->locked[sem_num]++; + else if (err == -1) + err = -errno; return err; } @@ -271,7 +274,10 @@ static inline int snd_pcm_direct_semaphore_up(snd_pcm_direct_t *dmix, int sem_nu { struct sembuf op = { sem_num, -1, SEM_UNDO | IPC_NOWAIT }; int err = semop(dmix->semid, &op, 1); - if (err == 0) dmix->locked[sem_num]--; + if (err == 0) + dmix->locked[sem_num]--; + else if (err == -1) + err = -errno; return err; }