From patchwork Thu Nov 24 23:26:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Gleixner X-Patchwork-Id: 25775 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp3689706wrr; Thu, 24 Nov 2022 16:50:42 -0800 (PST) X-Google-Smtp-Source: AA0mqf4rGrRHeKIjKF1uW+Hj9zBojsyT5funkDA7W+DXorUBD5SbUhYC0U2tsR2M2UzHyBG9GiT7 X-Received: by 2002:a65:48cc:0:b0:434:c0ca:b376 with SMTP id o12-20020a6548cc000000b00434c0cab376mr30990480pgs.180.1669337442039; Thu, 24 Nov 2022 16:50:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669337442; cv=none; d=google.com; s=arc-20160816; b=xnf+fB5AqqoyRxVR8SvgmgyiTp5gkTupKIbok4/TS37Vx8tj0/lCP6T9f93fTuSSUr dznLIaLCRX2MKS0JCIIZ8uHxQRMtfqhUSmwNGAWvicKtVpzGJLItcPIZAftFKia9Ke8w Laq4EPDCTdds424lUa7HcvhxlJAUkxeVy8x3qfEYbgFJtSs0SMsDUhu9ZetXcovaVSqq EN8YnQ9Ib7n93ZLjao3QsAWw+e2FfsNeTUdwiG2Hnfle1Gz6L41e0t71ePdMVn7LL4os Pq+++z+PF2tpDZhBePazWJM9ZCIvNtrazsspwpsv0t4Qu0l4SVhhXCvotfvkOm3clLaP FRxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:date:mime-version:references:subject:cc:to:from :dkim-signature:dkim-signature:message-id; bh=QDMaEx7ktXTUaBjXhcwy3JcriisNhamDQjdxbqkUVcQ=; b=gGO2wszr0RT+Bxp4+8Lw90EHJILdgBsU+bhnnhWSWmnUVOapYff2fJ+rW0nKJBBEAr ls7tr4sJh3FxhGZjScuNxWfHSoWsJr71Fsbhat8Z7xmxXZJLo0aAejVzneVAmj57jB7T 8A1zuAAejAI90QgzTyblBgAOrFD/hGGYbg2M7/ffPqQz6dGj02eVUAWu3U0SQYog/vtA vBa51pA/0WkUWqvhMNyID26ht/YEEetSwuLi6vQTAgurHvbKotf3Lmm10YLZoAwKzK6F m4ZttTAuKnhEIDDxizCy7lo5+8JrrW0Qh9JnyzJSHAx6Nnmbi4o02mN/+WRnvjDW4+P5 AyJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=zUr0QOYx; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=e02d3EkP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bt21-20020a17090af01500b00213022ff9a8si5449857pjb.168.2022.11.24.16.50.29; Thu, 24 Nov 2022 16:50:42 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=zUr0QOYx; dkim=neutral (no key) header.i=@linutronix.de header.s=2020e header.b=e02d3EkP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230144AbiKXXaw (ORCPT + 99 others); Thu, 24 Nov 2022 18:30:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230003AbiKXXaA (ORCPT ); Thu, 24 Nov 2022 18:30:00 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EDD9A87A71; Thu, 24 Nov 2022 15:28:00 -0800 (PST) Message-ID: <20221124232327.022658817@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1669332393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: references:references; bh=QDMaEx7ktXTUaBjXhcwy3JcriisNhamDQjdxbqkUVcQ=; b=zUr0QOYxgwDD1PsVVViqo27E4EsaPMbR4ALz9TfU0GC5htAX5nGPC6kA6mGwt93eEzunFY SV6YNVcQFPTwSfCmcVnJLHcVKJmea/9hHBZcbkFnnBWcMWqs62jdSUBSHL4N8+ePtaCL8B FFaR0KtJcel6lPaAZYtNjpTGRXpt7dKubo3WLJ9W9CX6n/h3XV/bLSg1oc9TgjhDZPwb3j GlFZSKS9M6+gjUjkWy8BNAyRLYckcl+6G3bOpAq+nxGJOsnvl2SLurpDuWo6Cz631V9AIs 05lrfrLGyMspEnMnsIubC+CzKiuF3CoVpv4qB6h5U1urATybLK6JYPIujJWWNQ== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1669332393; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: references:references; bh=QDMaEx7ktXTUaBjXhcwy3JcriisNhamDQjdxbqkUVcQ=; b=e02d3EkPUlNpaELh4mxVVoCi+mQ7c03Dpuxx2rMxLiCJ+d8w3kCUnmnKMKavOjEADyVpy5 OPe7q2W2AgbVSkBQ== From: Thomas Gleixner To: LKML Cc: x86@kernel.org, Joerg Roedel , Will Deacon , linux-pci@vger.kernel.org, Bjorn Helgaas , Lorenzo Pieralisi , Marc Zyngier , Greg Kroah-Hartman , Jason Gunthorpe , Dave Jiang , Alex Williamson , Kevin Tian , Dan Williams , Logan Gunthorpe , Ashok Raj , Jon Mason , Allen Hubbe Subject: [patch V3 30/33] x86/apic/msi: Enable PCI/IMS References: <20221124230505.073418677@linutronix.de> MIME-Version: 1.0 Date: Fri, 25 Nov 2022 00:26:32 +0100 (CET) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750427177593251696?= X-GMAIL-MSGID: =?utf-8?q?1750427177593251696?= Enable IMS in the domain init and allocation mapping code, but do not enable it on the vector domain as discussed in various threads on LKML. The interrupt remap domains can expand this setting like they do with PCI multi MSI. Signed-off-by: Thomas Gleixner --- arch/x86/kernel/apic/msi.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/arch/x86/kernel/apic/msi.c +++ b/arch/x86/kernel/apic/msi.c @@ -184,6 +184,7 @@ static int x86_msi_prepare(struct irq_do alloc->type = X86_IRQ_ALLOC_TYPE_PCI_MSI; return 0; case DOMAIN_BUS_PCI_DEVICE_MSIX: + case DOMAIN_BUS_PCI_DEVICE_IMS: alloc->type = X86_IRQ_ALLOC_TYPE_PCI_MSIX; return 0; default: @@ -230,6 +231,10 @@ static bool x86_init_dev_msi_info(struct case DOMAIN_BUS_PCI_DEVICE_MSI: case DOMAIN_BUS_PCI_DEVICE_MSIX: break; + case DOMAIN_BUS_PCI_DEVICE_IMS: + if (!(pops->supported_flags & MSI_FLAG_PCI_IMS)) + return false; + break; default: WARN_ON_ONCE(1); return false;