2.5.10 BKL not always released in sem_exit()
PATCH 1/1 2.5.10 BKL not always released in sem_exit()
Hi Linus,
The patch below fixes sem_exit() so that the BKL is always released.
thanks,
-chris
===== ipc/sem.c 1.5 vs edited =====
ipc/sem.c +3 -1
@@ -1176,8 +1176,10 @@ } 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.