From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755497AbbHKRTi (ORCPT ); Tue, 11 Aug 2015 13:19:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46344 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755456AbbHKRTW (ORCPT ); Tue, 11 Aug 2015 13:19:22 -0400 From: "Herton R. Krzesinski" To: linux-kernel@vger.kernel.org Cc: Andrew Morton , Davidlohr Bueso , Manfred Spraul , Rafael Aquini , Joe Perches , Aristeu Rozanski , djeffery@redhat.com, herton@redhat.com Subject: [PATCH 2/2] ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem() Date: Tue, 11 Aug 2015 14:19:16 -0300 Message-Id: <1439313556-13923-3-git-send-email-herton@redhat.com> In-Reply-To: <1439313556-13923-1-git-send-email-herton@redhat.com> References: <1439313556-13923-1-git-send-email-herton@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After we acquire the sma->sem_perm lock in exit_sem(), we are protected against a racing IPC_RMID operation. Also at that point, we are the last user of sem_undo_list. Therefore it isn't required that we acquire or use ulp->lock. Signed-off-by: Herton R. Krzesinski --- ipc/sem.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ipc/sem.c b/ipc/sem.c index 3b8b66b..c4c2911 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -2121,9 +2121,11 @@ void exit_sem(struct task_struct *tsk) ipc_assert_locked_object(&sma->sem_perm); list_del(&un->list_id); - spin_lock(&ulp->lock); + /* we are the last process using this ulp, acquiring ulp->lock + * isn't required. Besides that, we are also protected against + * IPC_RMID as we hold sma->sem_perm lock now + */ list_del_rcu(&un->list_proc); - spin_unlock(&ulp->lock); /* perform adjustments registered in un */ for (i = 0; i < sma->sem_nsems; i++) { -- 2.4.3