The patch titled Subject: ipc/sem: do not sleep with a spin lock held has been added to the -mm tree. Its filename is ipc-sem-do-not-sleep-with-a-spin-lock-held.patch This patch should soon appear at https://ozlabs.org/~akpm/mmots/broken-out/ipc-sem-do-not-sleep-with-a-spin-lock-held.patch and later at https://ozlabs.org/~akpm/mmotm/broken-out/ipc-sem-do-not-sleep-with-a-spin-lock-held.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Minghao Chi <chi.minghao@xxxxxxxxxx> Subject: ipc/sem: do not sleep with a spin lock held We can't call kvfree() with a spin lock held, so defer it. Link: https://lkml.kernel.org/r/20211223031207.556189-1-chi.minghao@xxxxxxxxxx Fixes: fc37a3b8b438 ("[PATCH] ipc sem: use kvmalloc for sem_undo allocation") Reported-by: Zeal Robot <zealci@xxxxxxxxxx> Signed-off-by: Minghao Chi <chi.minghao@xxxxxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Yang Guang <cgel.zte@xxxxxxxxx> Cc: Davidlohr Bueso <dbueso@xxxxxxx> Cc: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> Cc: Shakeel Butt <shakeelb@xxxxxxxxxx> Cc: Bhaskar Chowdhury <unixbhaskar@xxxxxxxxx> Cc: Vasily Averin <vvs@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- ipc/sem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/ipc/sem.c~ipc-sem-do-not-sleep-with-a-spin-lock-held +++ a/ipc/sem.c @@ -1964,6 +1964,7 @@ static struct sem_undo *find_alloc_undo( */ un = lookup_undo(ulp, semid); if (un) { + spin_unlock(&ulp->lock); kvfree(new); goto success; } @@ -1976,9 +1977,8 @@ static struct sem_undo *find_alloc_undo( ipc_assert_locked_object(&sma->sem_perm); list_add(&new->list_id, &sma->list_id); un = new; - -success: spin_unlock(&ulp->lock); +success: sem_unlock(sma, -1); out: return un; _ Patches currently in -mm which might be from chi.minghao@xxxxxxxxxx are mm-remove-unneeded-variable.patch selftests-vm-use-swap-to-make-code-cleaner.patch fs-adfs-remove-unneeded-variable-make-code-cleaner.patch ipc-sem-do-not-sleep-with-a-spin-lock-held.patch