From patchwork Fri Mar 19 16:19:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 12151391 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.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,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 55891C433C1 for ; Fri, 19 Mar 2021 16:22:11 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 EC20E6197D for ; Fri, 19 Mar 2021 16:22:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC20E6197D Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=53QwPmn8BbfTfogtdVpn0B+v3jUtYfoKEJ/zpnBc9+U=; b=eacurCJhgYnC4TMrjKvMyyQQN oCFMY+mfGQUz+rsVOc9upjqaGWZCnxP5yz9A+UAV57zWa5B2mSfr7k1OSIKJQ27VN/xneU/d442g6 Nzx9Y3oPTsFZgoFpF1NyBdMp4b+5eNiQzN/wmGX/R4iWpMQJdHcVr0MWonnpzl7ZXtexN76WQa7ZO h+h383gHYTphlLt3IT6VELBZGVWtWt2zmFELicNGyGtYOy9MvOMjvfRZdurdGwlVUHDfgV6KETpev +4LBiDKmGT3YRACqv5aaPcuHVWmImFpgJYjAqeSQXdzf8Ce6sEhF/N206EGtB1YEdXBAT22Aq6PWq n8vp/el5Q==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lNHrl-007h3q-Ah; Fri, 19 Mar 2021 16:20:49 +0000 Received: from mail-qk1-x732.google.com ([2607:f8b0:4864:20::732]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lNHrU-007gwt-Vh for linux-arm-kernel@lists.infradead.org; Fri, 19 Mar 2021 16:20:35 +0000 Received: by mail-qk1-x732.google.com with SMTP id v70so3440943qkb.8 for ; Fri, 19 Mar 2021 09:20:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vZobaehjsix9ib7wNZYs6eoX+BnCULN5ePNCx8BS41w=; b=G4s5yy6ZMZogHHRpLeRiBVSj9jitvRqqejC74/eF0IfqEwqdvlTBIR7F+IA1ne6l7O GG8O2dzkDS+nvBUkWU/5Gv1NEfId3HoI9LNZ4AxVzLufnBYhR73rMHo4cTOzt+XngoUd XoOUggIAZay53/+P+zf27DOJUwBOUD9sVT11PHdv8v0zCPfMdVL+QvYHaFfjAIE3BzvF ylV/QkEHjtBhjR0hhbxHcEN9Khf4QW0o9CHjOcBODtgr7trRFVJWCKqLFQi9uDt5arXE KLzQr7ky8bHWQ9wklJTdRZPfcBi3E9inKgdQfIIIaRBhn22ewD60AZPgDwHCOsi8AuRP h5+A== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=vZobaehjsix9ib7wNZYs6eoX+BnCULN5ePNCx8BS41w=; b=Cp8kJj5mytGd410TtXyunEAI0x7VLcsgAx816PMWXIvZA2xbRPcrdzLCm9mJpk+w9s J0d1VGJVMwhKGQ6e65sEtBY2hvs/v6jzrun8wQi6YJQVfAAe65tbu78GLdl87jMotIEf gaxPZ5O9gsvlmPKUSY1tH3+RgczgUvFrItMnz+7jjTsmQaDs9r2Af86SZ4qgwTxsL+dH Ww7U/lIQHHSHw5r1ntwo3X4srn8NqqYMEdh29l8pSlivE/00pFtdU2adsXK66lB8OD4S Ybjnz0EkSXrApGRs/hOjnU1T98bPK/MaaiXF3FvE+GhVJ4AR+IxB5VSsJy6ltZYJwCZi x/Zw== X-Gm-Message-State: AOAM533W32ouF9f8wrIwB/VVO96eoL5E/ZFTOFjNK2THIZH+DvwIqUK2 jSxJWBoSTkqC2S4U/zjJTbs= X-Google-Smtp-Source: ABdhPJx9673J0fqzQ5fDU65ei6lqj2aCpCqV40IEph2kxix69v/fpBODeOC4oHx+FmsO/q/Asy34UA== X-Received: by 2002:a37:9a07:: with SMTP id c7mr10264036qke.352.1616170830254; Fri, 19 Mar 2021 09:20:30 -0700 (PDT) Received: from auth2-smtp.messagingengine.com (auth2-smtp.messagingengine.com. [66.111.4.228]) by smtp.gmail.com with ESMTPSA id 79sm4962458qki.37.2021.03.19.09.20.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Mar 2021 09:20:28 -0700 (PDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailauth.nyi.internal (Postfix) with ESMTP id 430EE27C0061; Fri, 19 Mar 2021 12:20:28 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 19 Mar 2021 12:20:28 -0400 X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudefkedgkeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeeuohhquhhn ucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilhdrtghomheqnecuggftrfgrth htvghrnhephedvveetfefgiedutedtfeevvddvleekjeeuffffleeguefhhfejteekieeu ueelnecukfhppedufedurddutdejrddurddvheegnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgv rhhsohhnrghlihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfh gvnhhgpeepghhmrghilhdrtghomhesfhhigihmvgdrnhgrmhgv X-ME-Proxy: Received: from localhost (unknown [131.107.1.254]) by mail.messagingengine.com (Postfix) with ESMTPA id 9820A240068; Fri, 19 Mar 2021 12:20:27 -0400 (EDT) From: Boqun Feng To: Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org Cc: Catalin Marinas , Will Deacon , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Lorenzo Pieralisi , Rob Herring , Clint Sbisa , Boqun Feng , Ard Biesheuvel , Sunil Muthuswamy Subject: [RFC 1/2] arm64: PCI: Allow use arch-specific pci sysdata Date: Sat, 20 Mar 2021 00:19:55 +0800 Message-Id: <20210319161956.2838291-2-boqun.feng@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210319161956.2838291-1-boqun.feng@gmail.com> References: <20210319161956.2838291-1-boqun.feng@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210319_162033_250400_310B95B6 X-CRM114-Status: GOOD ( 21.84 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Currently, if an architecture selects CONFIG_PCI_DOMAINS_GENERIC, the ->sysdata in bus and bridge will be treated as struct pci_config_window, which is created by generic ECAM using the data from acpi. However, for a virtualized PCI bus, there might be no enough data in of or acpi table to create a pci_config_window. This is similar to the case where CONFIG_PCI_DOMAINS_GENERIC=n, IOW, architectures use their own structure for sysdata, so no apci table lookup is required. In order to enable Hyper-V's virtual PCI (which doesn't have acpi table entry for PCI) on ARM64 (which selects CONFIG_PCI_DOMAINS_GENERIC), we introduce arch-specific pci sysdata (similar to the one for x86) for ARM64, and allow the core PCI code to detect the type of sysdata at the runtime. The latter is achieved by adding a pci_ops::use_arch_sysdata field. Originally-by: Sunil Muthuswamy Signed-off-by: Boqun Feng (Microsoft) --- arch/arm64/include/asm/pci.h | 29 +++++++++++++++++++++++++++++ arch/arm64/kernel/pci.c | 15 ++++++++++++--- include/linux/pci.h | 3 +++ 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/arch/arm64/include/asm/pci.h b/arch/arm64/include/asm/pci.h index b33ca260e3c9..dade061a0658 100644 --- a/arch/arm64/include/asm/pci.h +++ b/arch/arm64/include/asm/pci.h @@ -22,6 +22,16 @@ extern int isa_dma_bridge_buggy; +struct pci_sysdata { + int domain; /* PCI domain */ + int node; /* NUMA Node */ +#ifdef CONFIG_ACPI + struct acpi_device *companion; /* ACPI companion device */ +#endif +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN + void *fwnode; /* IRQ domain for MSI assignment */ +#endif +}; #ifdef CONFIG_PCI static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) { @@ -31,8 +41,27 @@ static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel) static inline int pci_proc_domain(struct pci_bus *bus) { + if (bus->ops->use_arch_sysdata) + return pci_domain_nr(bus); return 1; } +#ifdef CONFIG_PCI_MSI_IRQ_DOMAIN +static inline void *_pci_root_bus_fwnode(struct pci_bus *bus) +{ + struct pci_sysdata *sd = bus->sysdata; + + if (bus->ops->use_arch_sysdata) + return sd->fwnode; + + /* + * bus->sysdata is not struct pci_sysdata, fwnode should be able to + * be queried from of/acpi. + */ + return NULL; +} +#define pci_root_bus_fwnode _pci_root_bus_fwnode +#endif /* CONFIG_PCI_MSI_IRQ_DOMAIN */ + #endif /* CONFIG_PCI */ #endif /* __ASM_PCI_H */ diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c index 1006ed2d7c60..63d420d57e63 100644 --- a/arch/arm64/kernel/pci.c +++ b/arch/arm64/kernel/pci.c @@ -74,15 +74,24 @@ struct acpi_pci_generic_root_info { int acpi_pci_bus_find_domain_nr(struct pci_bus *bus) { struct pci_config_window *cfg = bus->sysdata; - struct acpi_device *adev = to_acpi_device(cfg->parent); - struct acpi_pci_root *root = acpi_driver_data(adev); + struct pci_sysdata *sd = bus->sysdata; + struct acpi_device *adev; + struct acpi_pci_root *root; + + /* struct pci_sysdata has domain nr in it */ + if (bus->ops->use_arch_sysdata) + return sd->domain; + + /* or pci_config_window is used as sysdata */ + adev = to_acpi_device(cfg->parent); + root = acpi_driver_data(adev); return root->segment; } int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) { - if (!acpi_disabled) { + if (!acpi_disabled && bridge->ops->use_arch_sysdata) { struct pci_config_window *cfg = bridge->bus->sysdata; struct acpi_device *adev = to_acpi_device(cfg->parent); struct device *bus_dev = &bridge->bus->dev; diff --git a/include/linux/pci.h b/include/linux/pci.h index 86c799c97b77..4036aac40361 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -740,6 +740,9 @@ struct pci_ops { void __iomem *(*map_bus)(struct pci_bus *bus, unsigned int devfn, int where); int (*read)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 *val); int (*write)(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val); +#ifdef CONFIG_PCI_DOMAINS_GENERIC + int use_arch_sysdata; /* ->sysdata is arch-specific */ +#endif }; /* From patchwork Fri Mar 19 16:19:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Boqun Feng X-Patchwork-Id: 12151389 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.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham 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 DC02FC433C1 for ; Fri, 19 Mar 2021 16:22:04 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 6BFA66194A for ; Fri, 19 Mar 2021 16:22:04 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6BFA66194A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=uF+rVbxINoFN8VdS3S9bKyK30w/8MzaWExBvEOFJIRg=; b=FXRGZXv19j0aBOA8bddi5ltGv LQvucS2Ern2pBbbkkmKKDm+euT0fzk1UtaQ0wLLOgAkQJkZ0nThIt3TaZlEKoGsdyPAvLBQ+9DWrq 1C8i8zMumgxOrlkXbQ33C3wVRRmb2mrdzp252RI0WAWo/MH3Hu0jPTWbSKyUAUbIQAYVlZ+BmR9SW 378UDU46StEsR3uu80M57yqmaeigWPUQ+P8DWmdRB4LokRwO6wQVuPurhnwKw3PlT1ToTNDBIbx52 YeiTmavENPrGhrD2GvdDUOUcQTdopOZenOpXk0fGs39kWDwH5RDo8MjrbrxL6DLjyLPytVNp3Hoxz 2wWd0mXDw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lNHra-007gzx-85; Fri, 19 Mar 2021 16:20:38 +0000 Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lNHrU-007gx8-Vj for linux-arm-kernel@lists.infradead.org; Fri, 19 Mar 2021 16:20:35 +0000 Received: by mail-qt1-x829.google.com with SMTP id c6so7136439qtc.1 for ; Fri, 19 Mar 2021 09:20:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hOigcolInKq2azrkaT41R7EqZELchBXlGjfdA7p16f0=; b=R+VQTD45IlVeo8FZIwkbsrXHb5HdN1dGNF0wbJZot8CK1vUlZOYi5miaJxAn8T+F0W tzyHBANAN3MCw8jx4+gTtPmTBp+8BCXmBgM5IZeDZcJjjZYD2wWvNh61wW8V7TdF/ZZg UZ11EpMynm7tH+61CZs+hXxzW+DDl3fYuFQzSb+uUn8GflXn1f65mSv0pUYrXY7IxCDd EhZvXLzYn5pdj40r6h0g8Vn9YsCpGnmD4/eM+sttRxzQUsZPmOBmH+VsxYLm5FvHhqWX hVc9ibDoitEdKWpiuR2gFNoR8OOH/xflRcw/ZXFL2w9l+5o+KlORRyG7SHN1UHGHDvcR gmMg== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=hOigcolInKq2azrkaT41R7EqZELchBXlGjfdA7p16f0=; b=KuHv+DLJp2e7LT+vZ4DQjA3qwd/0yiGkFE0zJbhoxkgQSkyCIZsPhiheIKbEmy3P9O vy6IJKoGPNo3KXyk22NNJG/ObBLiFnP4f91eDQH5vSQymLXUBsGicsmEvGMnu0a0L1R4 IathNflo2ZJbBTSbWd9+uohiJvVObciRzSX6LQ70t96CvIctDVNaD9r991uIYryKIlql oSiNFIZLQo5RrtTZBYOe8DMWRRhoGqN7uuDxHpL5NmThoieNzr8b3RcHAQQuqlMBgk0F uvTajNUB13bdIx9HSUBOSZJ0TRIuOJbnjS3uYJwDjGfh3TAi3LU4VpTkweT1W6n0v/nM IrMQ== X-Gm-Message-State: AOAM531LbQm8yMHcwn2pQTjwIPfFN6ko7AImaKCaXP9qnOM1soUVq7wD Qi4BFZlizRYl6TNhiiW1anw= X-Google-Smtp-Source: ABdhPJw5rCfLaNS+oBUljUXMupVv+A4YSSGCfys/J74kbxSkFozJnCNbdN4NNBB4KYeSzyWZl/+M+w== X-Received: by 2002:ac8:7d52:: with SMTP id h18mr7143435qtb.175.1616170831225; Fri, 19 Mar 2021 09:20:31 -0700 (PDT) Received: from auth2-smtp.messagingengine.com (auth2-smtp.messagingengine.com. [66.111.4.228]) by smtp.gmail.com with ESMTPSA id z14sm3929680qti.87.2021.03.19.09.20.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Mar 2021 09:20:30 -0700 (PDT) Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailauth.nyi.internal (Postfix) with ESMTP id 1129427C0066; Fri, 19 Mar 2021 12:20:29 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute5.internal (MEProxy); Fri, 19 Mar 2021 12:20:29 -0400 X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudefkedgkeejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeeuohhquhhn ucfhvghnghcuoegsohhquhhnrdhfvghnghesghhmrghilhdrtghomheqnecuggftrfgrth htvghrnhephedvveetfefgiedutedtfeevvddvleekjeeuffffleeguefhhfejteekieeu ueelnecukfhppedufedurddutdejrddurddvheegnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepsghoqhhunhdomhgvshhmthhprghuthhhphgv rhhsohhnrghlihhthidqieelvdeghedtieegqddujeejkeehheehvddqsghoqhhunhdrfh gvnhhgpeepghhmrghilhdrtghomhesfhhigihmvgdrnhgrmhgv X-ME-Proxy: Received: from localhost (unknown [131.107.1.254]) by mail.messagingengine.com (Postfix) with ESMTPA id A062324005D; Fri, 19 Mar 2021 12:20:28 -0400 (EDT) From: Boqun Feng To: Bjorn Helgaas , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-hyperv@vger.kernel.org, linux-pci@vger.kernel.org Cc: Catalin Marinas , Will Deacon , "K. Y. Srinivasan" , Haiyang Zhang , Stephen Hemminger , Wei Liu , Lorenzo Pieralisi , Rob Herring , Clint Sbisa , Boqun Feng , Ard Biesheuvel , Sunil Muthuswamy Subject: [RFC 2/2] PCI: hv: Tell PCI core arch-specific sysdata is used Date: Sat, 20 Mar 2021 00:19:56 +0800 Message-Id: <20210319161956.2838291-3-boqun.feng@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210319161956.2838291-1-boqun.feng@gmail.com> References: <20210319161956.2838291-1-boqun.feng@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210319_162033_252081_33AAD563 X-CRM114-Status: GOOD ( 11.00 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Use the newly introduced ->use_arch_sysdata to tell PCI core, we still use the arch-specific sysdata way to set up root PCI buses on CONFIG_PCI_DOMAINS_GENERIC=y architectures, this is preparation fo Hyper-V ARM64 guest virtual PCI support. Signed-off-by: Boqun Feng (Microsoft) --- drivers/pci/controller/pci-hyperv.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c index 27a17a1e4a7c..7cfa18d8a26e 100644 --- a/drivers/pci/controller/pci-hyperv.c +++ b/drivers/pci/controller/pci-hyperv.c @@ -859,6 +859,9 @@ static int hv_pcifront_write_config(struct pci_bus *bus, unsigned int devfn, static struct pci_ops hv_pcifront_ops = { .read = hv_pcifront_read_config, .write = hv_pcifront_write_config, +#ifdef CONFIG_PCI_DOMAINS_GENERIC + .use_arch_sysdata = 1, +#endif }; /*