From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756127AbcIMIOu (ORCPT ); Tue, 13 Sep 2016 04:14:50 -0400 Received: from mx2.suse.de ([195.135.220.15]:51065 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755510AbcIMIOr (ORCPT ); Tue, 13 Sep 2016 04:14:47 -0400 Date: Tue, 13 Sep 2016 01:14:41 -0700 From: Davidlohr Bueso To: Manfred Spraul Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Davidlohr Bueso Subject: Re: [PATCH 1/5] ipc/sem: do not call wake_sem_queue_do() prematurely Message-ID: <20160913081441.GA32365@linux-80c1.suse> References: <1473681216-20025-1-git-send-email-dave@stgolabs.net> <1473681216-20025-2-git-send-email-dave@stgolabs.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 13 Sep 2016, Manfred Spraul wrote: >>- if (ipcperms(ns, &sma->sem_perm, alter ? S_IWUGO : S_IRUGO)) >>- goto out_rcu_wakeup; >>+ if (ipcperms(ns, &sma->sem_perm, alter ? S_IWUGO : S_IRUGO)) { >>+ rcu_read_unlock(); >>+ goto out_free; >>+ } >Is this really better/simpler? >You replace "if (error) goto cleanup" with "if (error) {cleanup_1(); >goto cleanup_2()}". I believe it is better as it clearly separates blocking from non-blocking exit paths. Overhead of course is irrelevant in both in-house wake_up_sem_queue_do and wake_up_q. Thanks, Davidlohr