From patchwork Fri Sep 11 23:21:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Daney X-Patchwork-Id: 7165631 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 7B68C9F314 for ; Fri, 11 Sep 2015 23:24:20 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8BA15207E4 for ; Fri, 11 Sep 2015 23:24:19 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BBB7D206E3 for ; Fri, 11 Sep 2015 23:24:18 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZaXeH-0005UY-NW; Fri, 11 Sep 2015 23:22:29 +0000 Received: from mail-io0-x229.google.com ([2607:f8b0:4001:c06::229]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1ZaXeE-0005J6-Nk for linux-arm-kernel@lists.infradead.org; Fri, 11 Sep 2015 23:22:27 +0000 Received: by iofh134 with SMTP id h134so115084118iof.0 for ; Fri, 11 Sep 2015 16:22:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=kDzUxxpyzoSvNUAEelM/9gSqW3rFu+5a1wswkxNOzjg=; b=YcOphyFVOlE1+plO1GALgIc/rjPAKiO14rM7ozOOsIRPDlTCWSq0TAbvn7oyqH4VU4 yzPi/7gm7tOhMWLsedZQXLaF1bD4q62hfyNn+kHwl+OEDXmNDmxngg+DgbLILfbZdUgo THS8RRGggOQJd4cbhw0ISc38jXCOZkMFJglOVTsQr+ISykzi8xG5ttYCHTGZ5SSxX/+U fgLxAETlQ5NpaRsnlnwimh7towBbEj85UWlnEBynMGCEvh2VrKfcsHpB4OJcy06A3nME WQ7S8hoScH0ZEEb9tKDHmVkWOj85QF3AgvmPU/utoW7ON3Obs7FVftNMm3TMpgvOqKPm jEAQ== X-Received: by 10.107.17.206 with SMTP id 75mr8594294ior.140.1442013726644; Fri, 11 Sep 2015 16:22:06 -0700 (PDT) Received: from dl.caveonetworks.com (64.2.3.194.ptr.us.xo.net. [64.2.3.194]) by smtp.gmail.com with ESMTPSA id lp1sm657501igb.10.2015.09.11.16.22.03 (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 11 Sep 2015 16:22:04 -0700 (PDT) Received: from dl.caveonetworks.com (localhost.localdomain [127.0.0.1]) by dl.caveonetworks.com (8.14.5/8.14.5) with ESMTP id t8BNM2H9005049; Fri, 11 Sep 2015 16:22:02 -0700 Received: (from ddaney@localhost) by dl.caveonetworks.com (8.14.5/8.14.5/Submit) id t8BNM2nH005048; Fri, 11 Sep 2015 16:22:02 -0700 From: David Daney To: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring , Frank Rowand , Grant Likely , Bjorn Helgaas , linux-pci@vger.kernel.org, Will Deacon , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , linux-arm-kernel@lists.infradead.org Subject: [PATCH 2/6] PCI: generic: Only fixup irqs for bus we are creating. Date: Fri, 11 Sep 2015 16:21:55 -0700 Message-Id: <1442013719-5001-3-git-send-email-ddaney.cavm@gmail.com> X-Mailer: git-send-email 1.7.11.7 In-Reply-To: <1442013719-5001-1-git-send-email-ddaney.cavm@gmail.com> References: <1442013719-5001-1-git-send-email-ddaney.cavm@gmail.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20150911_162226_849949_CAB6B611 X-CRM114-Status: GOOD ( 12.66 ) X-Spam-Score: -2.7 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Daney MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: David Daney Use pci_walk_bus() to restrict the fixup irq actions to only the bus being created. If we create multiple buses with pci-host-generic, or there are buses created by other drivers, we don't want to call pci_fixup_irqs() which operates on all devices, not just the devices on the bus being added. The consequence is that either the fixups are done more than once, or in some cases incorrect fixups could be applied. Signed-off-by: David Daney --- drivers/pci/host/pci-host-generic.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c index 265dd25..a0fb241 100644 --- a/drivers/pci/host/pci-host-generic.c +++ b/drivers/pci/host/pci-host-generic.c @@ -205,6 +205,12 @@ static int gen_pci_parse_map_cfg_windows(struct gen_pci *pci) return 0; } +static int gen_pci_fixup_irq_cb(struct pci_dev *dev, void *arg) +{ + pdev_fixup_irq(dev, pci_common_swizzle, of_irq_parse_and_map_pci); + return 0; +} + static int gen_pci_probe(struct platform_device *pdev) { int err; @@ -262,7 +268,7 @@ static int gen_pci_probe(struct platform_device *pdev) return -ENODEV; } - pci_fixup_irqs(pci_common_swizzle, of_irq_parse_and_map_pci); + pci_walk_bus(bus, gen_pci_fixup_irq_cb, NULL); if (!pci_has_flag(PCI_PROBE_ONLY)) { pci_bus_size_bridges(bus);