Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp394280ybl; Fri, 31 Jan 2020 00:40:06 -0800 (PST) X-Google-Smtp-Source: APXvYqytYPXotB67PV97bTY9vZSykROHi2o3xEvMXx9L2DiojO9sMt4/E8Vz6S/cD//rChoBAGe+ X-Received: by 2002:a9d:6b12:: with SMTP id g18mr6589757otp.211.1580460005898; Fri, 31 Jan 2020 00:40:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580460005; cv=none; d=google.com; s=arc-20160816; b=0AX2BMJsK7NMg/AxlXCjViYttoCMFAwSC0O3TD7Q49oeIRwwsrG0OmsDaos8x4wKOv H+byKZkiUg0uveoRrcc7uMYgbEhVSXmGhSATuK4VyYu6LCs4lf4feq1L/q0j13Lfs3I/ JrmFULzY63dFPF2YSfQjb1XPe/5qj/fvqgpjwk0coq6HgDNVVeOTuNBVa7xFTzvVrFDx NKe62or3BuMneN1sbxNZo1vM5a+RFV+x6ZYrOCvUaJYaJRH0hZuUwRZmrtmUtB9Tgkws HL65sfatGBydZb6i9ZxH9S10ijkxQtAA04WWy/J+OHNWyI2WsQ/fE3+fjoZSEe01MOWZ Sh9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:date:from :dkim-signature; bh=FoKfCmWfNgqHkhotqXl/ixOYix4Lzf/o3uYst0hF2UA=; b=f3HH4ksJyDMP21ugd0a72BQom3iHZoFf6sKZyBfOp6fYlBuKmGOxaQZDe4hK3dlvg4 L5f8oUQZkHVglCZxUowDYVzSHKPAK3nFE0DHHSLou0FKOnsOWsAhB7p6Kq6t+cjY0fdd bzc+Ei8iVdidDdm5v+vcYAeRgqKDY96UNU5yd5B+NUQE795cxEjryuWoOG7vutJipkH1 g9a6nDemYG0S87eGYxLo47tDZ1+71bODQ2unXQsxP6CLYQ1ceLJU9nvYIbpq/QaKkh+U hq/QmhPRN/Pcc0XE+WkMUU5HdYr9Yh3vxBKHvkcDT4aPikxf7uH6FMkqbJGdwMWxWRpi BL6w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=VLx0SPVk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f194si4167742oig.243.2020.01.31.00.39.54; Fri, 31 Jan 2020 00:40:05 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=VLx0SPVk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728198AbgAaIjE (ORCPT + 99 others); Fri, 31 Jan 2020 03:39:04 -0500 Received: from mail-wr1-f66.google.com ([209.85.221.66]:35222 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728099AbgAaIjE (ORCPT ); Fri, 31 Jan 2020 03:39:04 -0500 Received: by mail-wr1-f66.google.com with SMTP id g17so7638938wro.2; Fri, 31 Jan 2020 00:39:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:date:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=FoKfCmWfNgqHkhotqXl/ixOYix4Lzf/o3uYst0hF2UA=; b=VLx0SPVk3erxoohzVjmMM5bwQxKcDqDMF0lYxtUvC587AjI8a6v1jpeIs6H8U8cFwk UFyHh5LfCL+bAiO+wV0P8uY6ba3usoJ+/UyJu/R+aQV8hXW4cnNkVPNFWEluhtU3EqVT IqwLzZKvMkVz4Tfe6gufZujFHg+AtdeJGG4Q1jaWSRYglDJFLYXh0Su3umNtC2g1H/He MxajuBoza96LrvOZc1ccSoQJpC+FpXQWlH/mw7VZZ7ywaKB9hzv2ptROuGsejPdY6mLs z4M240EyTFeIGM4kjzPaLUxXyvbPqpIVMWv2roDUN92OnjpKPTQKjRnAmrMx3T6CNXCE ibOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:date:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=FoKfCmWfNgqHkhotqXl/ixOYix4Lzf/o3uYst0hF2UA=; b=UsfMkI4atASmd+2NFlLIj5Nn2DAeqamq25ISF2kTh/2hJv58kD92RKZc4oWtjnjCyw KLQhTCPiLrrHog5QpElb4ZFVuMUaX7qDvplhylxcOPonWygvrH7gd5fcI9YLLrXxhr4S UQuAeJDshoFfjk4Rz3irS4uW456fcnrI3RmkIHIepwpILzMbvxEYPajsznA4vL+TT93t oARaQNh+lNb7Ly1yOu6wNNNU/Ky43w7emlitkFwe2lSIPdbeJqLJ/zCjdjEMyD4b+wL4 sLFeTQ6DGcs1COn7WH1gyFS0QUeIwxwrP+kq+MTM2Kw+xQsrXZdsOz/rryzL1M7koTS7 8cSg== X-Gm-Message-State: APjAAAVsbo06+VHImuz+4fRv3qwzk4XOnvw9rQx7f4YNBpNZ/ZKxTYBF G5UZx+Lz1RgLftb0+F8Pb/dHgH4p5qs= X-Received: by 2002:adf:e609:: with SMTP id p9mr10602775wrm.397.1580459940732; Fri, 31 Jan 2020 00:39:00 -0800 (PST) Received: from quaco.ghostprotocols.net (catv-212-96-54-169.catv.broadband.hu. [212.96.54.169]) by smtp.gmail.com with ESMTPSA id v17sm10526092wrt.91.2020.01.31.00.38.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 31 Jan 2020 00:39:00 -0800 (PST) From: Arnaldo Carvalho de Melo X-Google-Original-From: Arnaldo Carvalho de Melo Received: by quaco.ghostprotocols.net (Postfix, from userid 1000) id F3C2940A7D; Fri, 31 Jan 2020 09:38:58 +0100 (CET) Date: Fri, 31 Jan 2020 09:38:58 +0100 To: Cengiz Can Cc: linux-kernel@vger.kernel.org, bpf@vger.kernel.org, netdev@vger.kernel.org Subject: Re: [PATCH] tools: perf: add missing unlock to maps__insert error case Message-ID: <20200131083858.GH3841@kernel.org> References: <20200120141553.23934-1-cengiz@kernel.wtf> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200120141553.23934-1-cengiz@kernel.wtf> X-Url: http://acmel.wordpress.com Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Em Mon, Jan 20, 2020 at 05:15:54PM +0300, Cengiz Can escreveu: > `tools/perf/util/map.c` has a function named `maps__insert` that > acquires a write lock if its in multithread context. > > Even though this lock is released when function successfully completes, > there's a branch that is executed when `maps_by_name == NULL` that > returns from this function without releasing the write lock. > > Added an `up_write` to release the lock when this happens. > > Signed-off-by: Cengiz Can > --- > > Hello Arnaldo, > > I'm not exactly sure about the order that we must call up_write here. > > Please tell me if the `__maps__free_maps_by_name` frees the > `rw_semaphore`. If that's the case, should we change the order to unlock and free? No it doesn't free the rw_semaphore, that is in 'struct maps', what is being freed is just something protected by rw_semaphore, maps->maps_by_name, so your patch is right and I'm applying it, thanks. - Arnaldo > Thanks! > > tools/perf/util/map.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c > index fdd5bddb3075..f67960bedebb 100644 > --- a/tools/perf/util/map.c > +++ b/tools/perf/util/map.c > @@ -549,6 +549,7 @@ void maps__insert(struct maps *maps, struct map *map) > > if (maps_by_name == NULL) { > __maps__free_maps_by_name(maps); > + up_write(&maps->lock); > return; > } > > -- > 2.25.0 > -- - Arnaldo