Skip to contentSkip to conversation

2.5.10 BKL not always released in sem_exit()

PATCH New Chris Wright 1 participant 1 message Apr 26, 2002

lore
Share & tools
lore
#0 lore raw

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.