From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74AB1C4363A for ; Fri, 23 Oct 2020 14:54:03 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 04389206DD for ; Fri, 23 Oct 2020 14:54:02 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="Z7z285TN" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 04389206DD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=HR6GHP+ne3X39zilnqk+MKR6dU3xEZvzpoBMfCUzyG4=; b=Z7z285TN1204Cq5FGZ0INYEz7H UT78ltJ5pZ1YtVag3Q3nkDMnt6Lle5C2r4zTmZcsgWEj6X5I1MkxZbyLndk0K3fCxl3wcFqMIZCtE FMFUVgM6lEmIiNQDD4W/Gv8fXfzzueP1+KJ36WvtcJSrpiroNpkER57X0X8kUjM43LHVhvx30JFWw m2R4RHSGvgpW/Mk02Qxm2NochD977yedeQFgHmhh10LvVAN82k4ACd7wqnDn87jzXZSFehwOGmR0c d+mc4vC87zo1Xgp27wLO/uF38t8kBblzcKqWtceZpI9QrzY53V1nHFSO4NLqi4oEa/jT40seT7ecJ cUgrepDQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kVyR7-0005oZ-JQ; Fri, 23 Oct 2020 14:52:57 +0000 Received: from mail-oo1-f67.google.com ([209.85.161.67]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kVyR4-0005nZ-V3 for linux-arm-kernel@lists.infradead.org; Fri, 23 Oct 2020 14:52:56 +0000 Received: by mail-oo1-f67.google.com with SMTP id w7so442134oow.7 for ; Fri, 23 Oct 2020 07:52:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=3kOZmGTPLSRVmyf8XY0nbCHbr6Vmsy9fem3E9vULmHU=; b=AG2e+KNCPxvKuyssT02B3pxvtoq1DIZjoeCIc3foZQ7mKthxQFrP3/QxK0z7IlJQhT ESfdtBPPt4dC+T3UrkMADC18smjKY9e1AhkkXTd88vCn1bN7xqDrQl1VpkQMK0mDZ49f AsNieYb6/5zEoxsTtwhIeIw4POGXoCr1LBO+xiQ8fPbHFDCckf/i7rO/kGP6E0OV7xep Zhae732IoZHZYcVCNl6Ye42/v1r8hSK4B4iLaN1IyWq/AfIPL3SFvWwNZMUuO32rTWPF ROKUW0PbqPE5NNWusVyp5ZsIHtnqBha3QH9Nui9n+xYLWro+aOdTBfyECg8aoOO+C+b4 d8HQ== X-Gm-Message-State: AOAM533O3hIWrf2fGMl1yrdzlPF/WHXRuo6/MjWufoH3TNlRh8g3nFaE t7nqJQBmQ+2IoESyVacK2A== X-Google-Smtp-Source: ABdhPJzBPjDe/Y0t5lciIvOwGDkq0FSwVmL1F96deGOJx+Do1u3lcK6m/HOwGtUYBZKEXeL2Lq2a0A== X-Received: by 2002:a4a:c68d:: with SMTP id m13mr1948257ooq.64.1603464773854; Fri, 23 Oct 2020 07:52:53 -0700 (PDT) Received: from xps15.herring.priv (24-155-109-49.dyn.grandenetworks.net. [24.155.109.49]) by smtp.googlemail.com with ESMTPSA id v21sm423533oto.65.2020.10.23.07.52.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Oct 2020 07:52:53 -0700 (PDT) From: Rob Herring To: vtolkm@googlemail.com, Thomas Petazzoni , Jason Cooper Subject: [PATCH v2] PCI: mvebu: Fix duplicate resource requests Date: Fri, 23 Oct 2020 09:52:52 -0500 Message-Id: <20201023145252.2691779-1-robh@kernel.org> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201023_105255_026852_12A061FC X-CRM114-Status: GOOD ( 17.73 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Bjorn Helgaas , linux-pci@vger.kernel.org, Lorenzo Pieralisi , Russell King , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org With commit 669cbc708122 ("PCI: Move DT resource setup into devm_pci_alloc_host_bridge()"), the DT 'ranges' is parsed and populated into resources when the host bridge is allocated. The resources are requested as well, but that happens a 2nd time for the mvebu driver in mvebu_pcie_parse_request_resources(). We should only be requesting the additional resources added in mvebu_pcie_parse_request_resources(). These are not added by default because the use custom properties rather than standard DT address translation. Also, the bus ranges was also populated by default, so we can remove it from mvebu_pci_host_probe(). Fixes: 669cbc708122 ("PCI: Move DT resource setup into devm_pci_alloc_host_bridge()") Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=209729 Reported-by: vtolkm@googlemail.com Cc: Thomas Petazzoni Cc: Jason Cooper Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Russell King Cc: linux-pci@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Rob Herring --- v2: - Fix copy-n-paste error with ioport_resource --- drivers/pci/controller/pci-mvebu.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/drivers/pci/controller/pci-mvebu.c b/drivers/pci/controller/pci-mvebu.c index c39978b750ec..653c0b3d2912 100644 --- a/drivers/pci/controller/pci-mvebu.c +++ b/drivers/pci/controller/pci-mvebu.c @@ -960,25 +960,16 @@ static void mvebu_pcie_powerdown(struct mvebu_pcie_port *port) } /* - * We can't use devm_of_pci_get_host_bridge_resources() because we - * need to parse our special DT properties encoding the MEM and IO - * apertures. + * devm_of_pci_get_host_bridge_resources() only sets up translateable resources, + * so we need extra resource setup parsing our special DT properties encoding + * the MEM and IO apertures. */ static int mvebu_pcie_parse_request_resources(struct mvebu_pcie *pcie) { struct device *dev = &pcie->pdev->dev; - struct device_node *np = dev->of_node; struct pci_host_bridge *bridge = pci_host_bridge_from_priv(pcie); int ret; - /* Get the bus range */ - ret = of_pci_parse_bus_range(np, &pcie->busn); - if (ret) { - dev_err(dev, "failed to parse bus-range property: %d\n", ret); - return ret; - } - pci_add_resource(&bridge->windows, &pcie->busn); - /* Get the PCIe memory aperture */ mvebu_mbus_get_pcie_mem_aperture(&pcie->mem); if (resource_size(&pcie->mem) == 0) { @@ -988,6 +979,9 @@ static int mvebu_pcie_parse_request_resources(struct mvebu_pcie *pcie) pcie->mem.name = "PCI MEM"; pci_add_resource(&bridge->windows, &pcie->mem); + ret = devm_request_resource(dev, &iomem_resource, &pcie->mem); + if (ret) + return ret; /* Get the PCIe IO aperture */ mvebu_mbus_get_pcie_io_aperture(&pcie->io); @@ -1001,9 +995,12 @@ static int mvebu_pcie_parse_request_resources(struct mvebu_pcie *pcie) pcie->realio.name = "PCI I/O"; pci_add_resource(&bridge->windows, &pcie->realio); + ret = devm_request_resource(dev, &ioport_resource, &pcie->realio); + if (ret) + return ret; } - return devm_request_pci_bus_resources(dev, &bridge->windows); + return 0; } /* -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel