summaryrefslogtreecommitdiff
path: root/ipc
diff options
context:
space:
mode:
authorChris Wright <chris@wirex.com>2002-04-28 05:17:09 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-04-28 05:17:09 -0700
commit23bd3bb40a6747d460ceaf0ad5688edd0be92cb6 (patch)
treeb884f352b550641935552d18e59c4cb0b8eaed3f /ipc
parent160ba3c93351c3a246dcc5c787deda5b23d93801 (diff)
[PATCH] 2.5.10 BKL not always released in sem_exit()
The patch below fixes sem_exit() so that the BKL is always released.
Diffstat (limited to 'ipc')
-rw-r--r--ipc/sem.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ipc/sem.c b/ipc/sem.c
index 16422138f0a9..4187ab77b44e 100644
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -1176,8 +1176,10 @@ void sem_exit (void)
}
undo_list = current->sysvsem.undo_list;
- if ((undo_list == NULL) || (atomic_read(&undo_list->refcnt) != 1))
+ if ((undo_list == NULL) || (atomic_read(&undo_list->refcnt) != 1)) {
+ unlock_kernel();
return;
+ }
/* There's no need to hold the semundo list lock, as current
* is the last task exiting for this undo list.