diff options
author | Al Viro <viro@ZenIV.linux.org.uk> | 2013-05-03 01:30:49 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-03 04:51:31 +0200 |
commit | ce857229e0c3adc211944a13a5579ef84fd7b4af (patch) | |
tree | f12310c2c6492dd7ef4b25dd0c6052f7a114b9cf /drivers/firmware/memmap.c | |
parent | Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux (diff) | |
download | linux-ce857229e0c3adc211944a13a5579ef84fd7b4af.tar.xz linux-ce857229e0c3adc211944a13a5579ef84fd7b4af.zip |
ipc: fix GETALL/IPC_RM race for sysv semaphores
We can step on WARN_ON_ONCE() in sem_getref() if a semaphore is removed
just as we are about to call sem_getref() from semctl_main(); results
are not pretty.
We should fail with -EIDRM, same as if IPC_RM happened while we'd been
doing allocation there. This also expands sem_getref() at its only
callsite (and fixed there), while sem_getref_and_unlock() is simply
killed off - it has no callers at all.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Davidlohr Bueso <davidlohr.bueso@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/firmware/memmap.c')
0 files changed, 0 insertions, 0 deletions