Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp1382893imm; Tue, 5 Jun 2018 13:45:04 -0700 (PDT) X-Google-Smtp-Source: ADUXVKJfxtQ5o410RyuxI7Q8ms0Rb3M3HIMW8fZLGBpKXZzBhaguplJBt2HyHY8JSZyeS1I4dwYW X-Received: by 2002:a17:902:d807:: with SMTP id a7-v6mr189255plz.92.1528231504467; Tue, 05 Jun 2018 13:45:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528231504; cv=none; d=google.com; s=arc-20160816; b=w6huy1m5fgW6YAXZjFgPSsCtSpMVwt5otaiFc3z6CkiULJH7RkwdsujhkKUtqMw+LZ ekGhqCTBqVPuLsDW+XFFu9LxfCsa39sOf16jxbfY/73ADy4i2UW4GnFPhYD8nS702HUz 6YgdbZU+3FPmzY9HpJVQdgUNFdOQzBLZE2h+U6f16GNro9reCN1s7ZvCLgDKbPjScLOc DfVStPBY0HMJfGaVZC+Qj80t47ZyjgswP+Zk6+nMYdrqwRS9sxm2T9NgHCbCk1NVqFV3 5Alr9K5Kmrsc/wAymK7oCRu2gAl+paP0wchXieFfJkm/gZNdMj8PrZPtGa1A2fi8MqHF ANuw== 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:arc-authentication-results; bh=y82fLsq3XjhVB2s1iQSiI22DYDWKByf+X0Cf1EUF4Iw=; b=fvF5Dn7UXxreVR0g7d56F8GRaxdKeDz6fzI0Hq52X04RO+CJ82h6zdJVnnXEZdvfwC 08CLAm4J78Z0sRcdlZ2xuG5vaZt2WTGoFkRcPaLhbCYa43Zj56bCBX8sE/0h69EcJwv+ kwdgEzrpmpYLI19xh/vomw5k9/hddFtuQroaNBZrczGvJ5IMrJ40PhtUzOJ3JZKdksAO epoxTmMeD2hJDlmPTEto6Aebumn1Eb0UJLP732g4sYbV5by+40qCFN05GrRN4EvICuh7 EJiCf5cG4i3elgpAfvHnvSmAgHkji6POcE8BtI4gwCJKxLgEyK5NvnsgkrFdydTIyJbG 4O3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=XGvw4wV1; 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 g187-v6si39746175pgc.644.2018.06.05.13.44.44; Tue, 05 Jun 2018 13:45:04 -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=XGvw4wV1; 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 S1752008AbeFEUoL (ORCPT + 99 others); Tue, 5 Jun 2018 16:44:11 -0400 Received: from mail.kernel.org ([198.145.29.99]:43472 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751820AbeFEUoJ (ORCPT ); Tue, 5 Jun 2018 16:44:09 -0400 Received: from localhost (unknown [69.71.5.252]) (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 15C272075E; Tue, 5 Jun 2018 20:44:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1528231449; bh=7Z48JEfEuYj2vR6o3rLdI3flAB/wirK0OQ7bIcSKCvk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=XGvw4wV1PoeYCQpR7dlrYoX+kp9t1T8URoqjIQABhh1yw521hWgrVeMYRcz1W2MwN HJW+r8pavPh7BrJwsYqaT+78HlvurHNojwwAi1M9xtoJAAYSMFeuvwIOeOYig1Ps9E O8fzyMZsjkcW6KC+a1ldjHWtLVSgOwfu//jyYXAk= Date: Tue, 5 Jun 2018 15:44:07 -0500 From: Bjorn Helgaas To: Andy Shevchenko Cc: Jan Kiszka , Bjorn Helgaas , Linux Kernel Mailing List , linux-pci@vger.kernel.org, linux-arm Mailing List , Vladimir Zapolskiy , Jingoo Han , Joao Pinto , Lorenzo Pieralisi Subject: Re: [PATCH] PCI: Clean up resource allocation in devm_of_pci_get_host_bridge_resources() Message-ID: <20180605204407.GA226399@bhelgaas-glaptop.roam.corp.google.com> References: <3aeb2ed038cbce8fe744b614dc19d414555a7e8f.1526375226.git.jan.kiszka@siemens.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 05, 2018 at 07:26:57PM +0300, Andy Shevchenko wrote: > On Wed, May 16, 2018 at 3:31 PM, Jan Kiszka wrote: > > Instead of first allocating and then freeing memory for struct resource > > in case we cannot parse a PCI resource from the device tree, work > > against a local struct and kmemdup it when we decide to go with it. > > > > Bjorn, any comments on this? I'm trying to finish up the v4.18 changes now, but I'll look at this later. If it's urgent, let me know and I can look sooner. > > Suggested-by: Andy Shevchenko > > Signed-off-by: Jan Kiszka > > --- > > drivers/pci/of.c | 14 ++++++-------- > > 1 file changed, 6 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/pci/of.c b/drivers/pci/of.c > > index b06585a1da75..fc0f906c5c25 100644 > > --- a/drivers/pci/of.c > > +++ b/drivers/pci/of.c > > @@ -266,7 +266,7 @@ int devm_of_pci_get_host_bridge_resources(struct device *dev, > > struct list_head *resources, resource_size_t *io_base) > > { > > struct device_node *dev_node = dev->of_node; > > - struct resource *res; > > + struct resource *res, tmp_res; > > struct resource *bus_range; > > struct of_pci_range range; > > struct of_pci_range_parser parser; > > @@ -320,18 +320,16 @@ int devm_of_pci_get_host_bridge_resources(struct device *dev, > > if (range.cpu_addr == OF_BAD_ADDR || range.size == 0) > > continue; > > > > - res = devm_kzalloc(dev, sizeof(struct resource), GFP_KERNEL); > > + err = of_pci_range_to_resource(&range, dev_node, &tmp_res); > > + if (err) > > + continue; > > + > > + res = devm_kmemdup(dev, &tmp_res, sizeof(tmp_res), GFP_KERNEL); > > if (!res) { > > err = -ENOMEM; > > goto failed; > > } > > > > - err = of_pci_range_to_resource(&range, dev_node, res); > > - if (err) { > > - devm_kfree(dev, res); > > - continue; > > - } > > - > > if (resource_type(res) == IORESOURCE_IO) { > > if (!io_base) { > > dev_err(dev, > > -- > > 2.13.6 > > > > -- > With Best Regards, > Andy Shevchenko