Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp720883yba; Fri, 5 Apr 2019 16:06:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqx5uNVkOXHDkCgqnsP1tIQG7y4kfs67kTxVf/Dgtt8frx3B+9nq+qv70WTc6rdDPwUC/hDE X-Received: by 2002:aa7:87c5:: with SMTP id i5mr8895059pfo.20.1554505605365; Fri, 05 Apr 2019 16:06:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554505605; cv=none; d=google.com; s=arc-20160816; b=zYXMwxWJuRiPEnOu8QUVnPue261XjYQAHg7HVvec7c23iC8SpTVopzDQtprpZ04oI1 n20b4Opp0RWpSopZqM+lJJHBI7C+2jl3cPLkdJWnV5yiOKCEVogslwDb5wcFMWUokWop XwsSgDHPk4QJDqhgVVS0mQAUpNrSxGPqSh3eRlTJUZy6JZrSoZ2u5F8xEM4bqVpxxBuv 19neXgXRy0zWnypunTjguUcPS+f0b6+8ZTuGU+Metvd3n612e09QCwPZKqxTfHg6WSTM W4XBH0gjKBQE2btXUIFIE/KrgIRZpRCiZizZm694KgPqYvPk4gRGNbNeEcDSWez5R2ZT Slog== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=6ILpTtOsNdV5Xqmkkl7MU9Mvg0ZrDfRv/s5h6IFgEpk=; b=d/l+HKr18kdXUl/WpXlVyQ+iWeQOPtS4A0fFMseHCw+7RKJDx0BJ/wsTI+tSxEhHMx V5LN/5FzBwTS+0arQKVZR4zK5YolFTwehIRi3qtvezQaIoc1PjmzFsl15pdSJAGPAvmW Ah2+yJlVYsolfnckAvMpFyEl72MeEA29LmJIYa5N/W7Y6+lo+dwhgmCafCO68wtoM9IQ 47VlvTRyx/unc5QDKgmKrmbC1wNOdbeG5VlPVtNNIk8bmVSJYd18lK5dD+RTMC8jx/DD xcaw2XUSl8fV/Mi38JuAQIXwPb4j3gTdb/K2GDoQcAstbfrzR/DBIdtmul9qS3QsNauX adZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZqhWLj8u; 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=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m12si20150295pgc.157.2019.04.05.16.06.29; Fri, 05 Apr 2019 16:06:45 -0700 (PDT) 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=@kernel.org header.s=default header.b=ZqhWLj8u; 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=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726431AbfDEXEr (ORCPT + 99 others); Fri, 5 Apr 2019 19:04:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:49842 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726124AbfDEXEr (ORCPT ); Fri, 5 Apr 2019 19:04:47 -0400 Received: from localhost (unknown [69.71.4.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0A7192175B; Fri, 5 Apr 2019 23:04:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1554505486; bh=B/VUhNvhr91k6lbYbAfhAz7J78aF270M2nTme/nZQfM=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=ZqhWLj8uOAwlcKN+ANFOCpxxDXW6uV3ip2PtIdEPhd+9jbUAmRHBDUWFQ7+8EFsF/ z1bMZUy4i3R5ZSXWIs+DW2ABn8QiWdTU7bsUYyuYvgOrq9fhVsn9oGc8R2Z7oz2OMV xpC6FMF518Jzk3qExZHI+tsWVvUZz3+STC/u1lT4= Date: Fri, 5 Apr 2019 18:04:43 -0500 From: Bjorn Helgaas To: Tyrel Datwyler Cc: linux-pci@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/2] pci: rpadlpar: fix leaked device_node references in add/remove paths Message-ID: <20190405230443.GA200379@google.com> References: <20190322182722.8255-1-tyreld@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190322182722.8255-1-tyreld@linux.vnet.ibm.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Mar 22, 2019 at 01:27:21PM -0500, Tyrel Datwyler wrote: > The find_dlpar_node() helper returns a device node with its reference > incremented. Both the add and remove paths use this helper for find the > appropriate node, but fail to release the reference when done. > > Annotate the find_dlpar_node() helper with a comment about the incremented > reference count, and call of_node_put() on the obtained device_node in the > add and remove paths. Also, fixup a reference leak in the find_vio_slot() > helper where we fail to call of_node_put() on the vdevice node after we > iterate over its children. > > Signed-off-by: Tyrel Datwyler Both applied to pci/hotplug for v5.2, thanks! > --- > drivers/pci/hotplug/rpadlpar_core.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/pci/hotplug/rpadlpar_core.c b/drivers/pci/hotplug/rpadlpar_core.c > index e2356a9c7088..182f9e3443ee 100644 > --- a/drivers/pci/hotplug/rpadlpar_core.c > +++ b/drivers/pci/hotplug/rpadlpar_core.c > @@ -51,6 +51,7 @@ static struct device_node *find_vio_slot_node(char *drc_name) > if (rc == 0) > break; > } > + of_node_put(parent); > > return dn; > } > @@ -71,6 +72,7 @@ static struct device_node *find_php_slot_pci_node(char *drc_name, > return np; > } > > +/* Returns a device_node with its reference count incremented */ > static struct device_node *find_dlpar_node(char *drc_name, int *node_type) > { > struct device_node *dn; > @@ -306,6 +308,7 @@ int dlpar_add_slot(char *drc_name) > rc = dlpar_add_phb(drc_name, dn); > break; > } > + of_node_put(dn); > > printk(KERN_INFO "%s: slot %s added\n", DLPAR_MODULE_NAME, drc_name); > exit: > @@ -439,6 +442,7 @@ int dlpar_remove_slot(char *drc_name) > rc = dlpar_remove_pci_slot(drc_name, dn); > break; > } > + of_node_put(dn); > vm_unmap_aliases(); > > printk(KERN_INFO "%s: slot %s removed\n", DLPAR_MODULE_NAME, drc_name); > -- > 2.12.3 >