Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp2222725rwb; Fri, 11 Nov 2022 06:42:38 -0800 (PST) X-Google-Smtp-Source: AA0mqf6/8z3yrJix68jIUEVDG9QXAWB/Qy4n16sEqDsClvcaVDYMld3rAVL8Kb5QA1A78egBoZ5U X-Received: by 2002:a50:9ee3:0:b0:460:e19c:15a3 with SMTP id a90-20020a509ee3000000b00460e19c15a3mr1781836edf.252.1668177758492; Fri, 11 Nov 2022 06:42:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668177758; cv=none; d=google.com; s=arc-20160816; b=AJW4EEK7Xcpu5CLJIai1m8DUKLWEPuHc66fH4nc4pWkhb1N63gSYnC3RTmbDtospYh pXAWb8Q8K1OnszvN1FiXHC4q5qIqVBjAZ6triARVNZGixLyOtANOiyFQ+NtJZTEf2wny sB6LpoO3X+DhxsdO6aIOXhq1F2FdASDZMVv+uKXWTGd+Y3Cb9db5D9tImQgqvpfLDzZD I7pUZ0GhT2VkqWk3XyXR+djdCOxxbtV5JESb3+F2/6WOcaKI7uegN/N7QkvoWSDIkn5X XH0cWVocIBvRITIvY/ljKWrCFZlRpjB6dBCxklog7rJ77q54dlytWiIHatXJM3Ie+SxG Cs1Q== 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=7fmcFX1MJSQKPJVgurNTrf9/R1xe0is9IBLZWgzTjmw=; b=JmIjIdrwIVQeFmSYCvh9iE9sVrMdyPgc6N2yDk4b54tQkUk0GYlQiU0gKBdjLJNTk8 lbr4Y1Ot176RAGsEt9QHbNK047wq18mK7JKT1IoRam4D15qIqDX6nLWZq95vUt52Vyab druD9ih08CXnMXd3/SWMVrTtsUiQwmPBTOAPMkW/jDdl/CEQ1xhZwS8kNv2I8C4b1bnh K8jZApP8Gr9JsdiRZi+qbA2xrAEBO8stoNg4tVWIK06Obw5pqhQaVRkAxaUo1RmDCWt+ g8CAJbUX0pMqadv/JICJ66I0wxXK3BizThfN7jSZb4BxXEoB0iMo3aG/zsLB/thB8UG2 M2wQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b="ikIR/AeS"; dkim=neutral (no key) header.i=@linutronix.de; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id dc26-20020a170906c7da00b0077b6ecac099si1537996ejb.287.2022.11.11.06.42.15; Fri, 11 Nov 2022 06:42:38 -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="ikIR/AeS"; dkim=neutral (no key) header.i=@linutronix.de; 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 S234532AbiKKOIz (ORCPT + 91 others); Fri, 11 Nov 2022 09:08:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234778AbiKKOHg (ORCPT ); Fri, 11 Nov 2022 09:07:36 -0500 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE39D99327; Fri, 11 Nov 2022 06:00:13 -0800 (PST) Message-ID: <20221111135206.800062166@linutronix.de> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1668175134; 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=7fmcFX1MJSQKPJVgurNTrf9/R1xe0is9IBLZWgzTjmw=; b=ikIR/AeSqt/XXTdAQyxTKZcUYLrhRTDWT2sptBXUbsU0SzCRHX1C80+o2BLWhFBYhOm6el ksLpaWyI+ic4nSWkQ3bzdPCEff5m6KfGLAwxizrjtcv+/L8uWlvDHMIIG6PMqTo9l2qTYb gcbbDZlgmgDxl+7PQfDsJOba6pGWPgEQZlQcjbuirbVK5hNYk7fAONSznugmW67WEJQs7B PHSlHia0l9TezyW6KhbjBEY2QR/YYdYhIn3O2XEDmg7qmqr47dAS+c54zpw0vNWm3isz2l lM5ZjjAy1H1znHrZkDRJ7oosVpKANVVmE511Di/dv5AYsuc9cOhuduXTAV/6Aw== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1668175134; 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=7fmcFX1MJSQKPJVgurNTrf9/R1xe0is9IBLZWgzTjmw=; b=L5+0eNKf2C8h0mEfMzHIbkytQe8CGoXz6dnzRcdcGTEYL+V0gr2N8zFZZ5ghERyB1s8prE rdS4ZWKv9fvaR5BQ== 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 , "Ahmed S. Darwish" , Reinette Chatre Subject: [patch 27/33] genirq/msi: Provide constants for PCI/IMS support References: <20221111133158.196269823@linutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Date: Fri, 11 Nov 2022 14:58:54 +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 Provide the necessary constants for PCI/IMS support: - A new bus token for MSI irqdomain identification - A MSI feature flag for the MSI irqdomains to signal support - A secondary domain id The latter expands the device internal domain pointer storage array from 1 to 2 entries. That extra pointer is mostly unused today, but the alternative solutions would not be free either and would introduce more complexity all over the place. Trade the 8bytes for simplicity. Signed-off-by: Thomas Gleixner --- include/linux/irqdomain_defs.h | 1 + include/linux/msi.h | 2 ++ include/linux/msi_api.h | 1 + 3 files changed, 4 insertions(+) --- a/include/linux/irqdomain_defs.h +++ b/include/linux/irqdomain_defs.h @@ -25,6 +25,7 @@ enum irq_domain_bus_token { DOMAIN_BUS_PCI_DEVICE_MSIX, DOMAIN_BUS_DMAR, DOMAIN_BUS_AMDVI, + DOMAIN_BUS_PCI_DEVICE_IMS, }; #endif /* _LINUX_IRQDOMAIN_DEFS_H */ --- a/include/linux/msi.h +++ b/include/linux/msi.h @@ -525,6 +525,8 @@ enum { MSI_FLAG_MSIX_CONTIGUOUS = (1 << 19), /* PCI/MSI-X vectors can be dynamically allocated/freed post MSI-X enable */ MSI_FLAG_PCI_MSIX_ALLOC_DYN = (1 << 20), + /* Support for PCI/IMS */ + MSI_FLAG_PCI_IMS = (1 << 21), }; /** --- a/include/linux/msi_api.h +++ b/include/linux/msi_api.h @@ -15,6 +15,7 @@ struct device; */ enum msi_domain_ids { MSI_DEFAULT_DOMAIN, + MSI_SECONDARY_DOMAIN, MSI_MAX_DEVICE_IRQDOMAINS, };