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=-4.0 required=3.0 tests=BAYES_00,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no 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 8CB7FC433E1 for ; Sat, 20 Mar 2021 13:30:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 68A0A61972 for ; Sat, 20 Mar 2021 13:30:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229708AbhCTNXm (ORCPT ); Sat, 20 Mar 2021 09:23:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:41954 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229686AbhCTNXh (ORCPT ); Sat, 20 Mar 2021 09:23:37 -0400 Received: from disco-boy.misterjones.org (disco-boy.misterjones.org [51.254.78.96]) (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 4CDE461970; Sat, 20 Mar 2021 13:23:37 +0000 (UTC) Received: from 78.163-31-62.static.virginmediabusiness.co.uk ([62.31.163.78] helo=why.misterjones.org) by disco-boy.misterjones.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1lNbZn-002mhT-BP; Sat, 20 Mar 2021 13:23:35 +0000 Date: Sat, 20 Mar 2021 13:23:34 +0000 Message-ID: <87sg4qgdrd.wl-maz@kernel.org> From: Marc Zyngier To: Arnd Bergmann Cc: Bjorn Helgaas , Boqun Feng , Bjorn Helgaas , Linux ARM , Linux Kernel Mailing List , Linux on Hyper-V List , linux-pci , Catalin Marinas , Will Deacon , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Lorenzo Pieralisi , Rob Herring , Clint Sbisa , Ard Biesheuvel , Sunil Muthuswamy Subject: Re: [RFC 1/2] arm64: PCI: Allow use arch-specific pci sysdata In-Reply-To: References: <20210319161956.2838291-2-boqun.feng@gmail.com> <20210319211246.GA250618@bjorn-Precision-5520> <87tup6gf3m.wl-maz@kernel.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM-LB/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL-LB/10.8 EasyPG/1.0.0 Emacs/27.1 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=US-ASCII X-SA-Exim-Connect-IP: 62.31.163.78 X-SA-Exim-Rcpt-To: arnd@arndb.de, helgaas@kernel.org, boqun.feng@gmail.com, bhelgaas@google.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org, catalin.marinas@arm.com, will@kernel.org, kys@microsoft.com, haiyangz@microsoft.com, sthemmin@microsoft.com, wei.liu@kernel.org, lorenzo.pieralisi@arm.com, robh@kernel.org, csbisa@amazon.com, ardb@kernel.org, sunilmut@microsoft.com X-SA-Exim-Mail-From: maz@kernel.org X-SA-Exim-Scanned: No (on disco-boy.misterjones.org); SAEximRunCond expanded to false Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org On Sat, 20 Mar 2021 13:03:13 +0000, Arnd Bergmann wrote: > > On Sat, Mar 20, 2021 at 1:54 PM Marc Zyngier wrote: > > On Fri, 19 Mar 2021 21:12:46 +0000, > > > > > > > Ugh. pci_root_bus_fwnode() is another callback to find the > > > irq_domain. Only one call, from pci_host_bridge_msi_domain(), which > > > itself is only called from pci_set_bus_msi_domain(). This feels like > > > another case where we could simplify things by having the host bridge > > > driver figure out the irq_domain explicitly when it creates the > > > pci_host_bridge. It seems like that's where we have the most > > > information about how to find the irq_domain. > > > > Urgh. This is a perfect copy paste of the x86 horror, warts and all. > > I can't say I'm thrilled (another way to say "Gawd, Noes! Never!"). > > > > One thing I am sure of is that I do not want to add more custom > > indirection to build the MSI topology. We barely got rid of the > > msi_controller structure, and this is the same thing by another > > name. Probably worse, actually. > > > > In this case, I don't see the point in going via a fwnode indirection > > given that there is no firmware tables the first place. > > > > As for finding the irq domain from the host bridge, that's not doable > > in most cases on arm64, as it is pretty likely that the host bridge > > knows nothing about MSIs when they are implemented in the GIC (see my > > recent msi_controller removal series that has a few patches about > > that). > > > > Having an optional callback to host bridges to obtain the MSI domain > > may be possible in some cases though (there might be a chicken/egg > > problem for some drivers though...). > > I would expect that the host bridge driver can find the MSI domain > at probe time and just add a pointer into the pci_host_bridge > structure. In most cases, it doesn't implement it itself, and I'd be reluctant to duplicate information that can already be retrieved from somewhere else in a generic way (i.e. no PCI specific). M. -- Without deviation from the norm, progress is not possible.