[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v1 1/3] vpci/msix: move helpers to common


  • To: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>
  • Date: Mon, 26 Oct 2026 12:27:59 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=XxPz9fAW4k+o2b3KErd9e8gSA7RABkWRKMRB3aHqN6g=; b=oaXXAKv+NKxKHph0S9h9tkQG0GxqDGrXVKHcBXeI8aG+VtKh7dPFS/qoII2SfL7PNMuplcoW35ptsSNIRA1wSvFTQcPU2T2pmZTOK3nMY4yMkPEs2PNlAEotSVLBh4tHNSBOIk1cpG+UvuPoZsDfja5E9HwQEIYxQg9QlXWvkuqZJT/UmqDfNqwqlw317xw/Bdk/l6JoVug7/uEHZGRMjr/h8CKfHJ7HdVfoWljwBPWKtdSyvFhIWdKxlWQeWjL81/lmwckUkKay+ssqVnoMUqIiFMOiNnhetQVuZpLx3Q/jCdHKwkwyea+7zWrZi7iUiJTuKQxJNev9I0OHa59Ziw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IG4FolDwOTv/L8Eu2sO8Vfl4DfmVWVUiAQSZA9d1Wp07Y9k9u+8TgSzrK1M9rs3Vb+LbjOoWN2D6yWUZXK2j7xTAltqReiC/5ajvGI/m5zD0CoCbGza+I6IkkuzkASTzm+mWXM32XIOI+S5ZajXkLNeQ4+ozFmlo9DwqfWUIXG7jgJ/F3kOQgz6XvpbLzMi5/Vgazz1fhR39ks310nGfwkQ4l5Sh3IV2RFH0bVyBJ4T1X4I5h8FeaC+EqHjrvImBU+8JxrEN8Q4vsf+jHLmCi5JquL8zL3od6nVLzCugoW/WwKDW+8BxvUqWKjNlcwF0AZfe2pbGEvRDO/4z2QdWkA==
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=epam.com header.i="@epam.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:x-ms-exchange-senderadcheck"
  • Authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com;
  • Cc: Rahul Singh <rahul.singh@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger@xxxxxxxxxxxxxx>, Teddy Astie <teddy.astie@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Jason Andryuk <jason.andryuk@xxxxxxx>, Stewart Hildebrand <stewart.hildebrand@xxxxxxx>, Mykyta Poturai <Mykyta_Poturai@xxxxxxxx>
  • Delivery-date: Mon, 26 Oct 2026 12:28:05 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Thread-index: AQHdZUVw86OFDAh+gU+B9obs/ZE7IA==
  • Thread-topic: [PATCH v1 1/3] vpci/msix: move helpers to common

From: Rahul Singh <rahul.singh@xxxxxxx>

vPCI MSI-X helpers to be used on Arm are moved to a common header.

Signed-off-by: Rahul Singh <rahul.singh@xxxxxxx>
Signed-off-by: Stewart Hildebrand <stewart.hildebrand@xxxxxxx>
Signed-off-by: Mykyta Poturai <mykyta_poturai@xxxxxxxx>
---
 xen/arch/x86/include/asm/msi.h      | 21 ---------------------
 xen/arch/x86/msi.c                  |  2 +-
 xen/drivers/passthrough/amd/iommu.h |  2 +-
 xen/drivers/vpci/msi.c              |  3 +--
 xen/drivers/vpci/msix.c             |  2 +-
 xen/include/xen/msi.h               | 21 +++++++++++++++++++++
 6 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h
index 6fb663b2e7..818fa72928 100644
--- a/xen/arch/x86/include/asm/msi.h
+++ b/xen/arch/x86/include/asm/msi.h
@@ -147,27 +147,6 @@ int msi_free_irq(struct msi_desc *entry);
  */
 #define NR_HP_RESERVED_VECTORS         20
 
-#define msi_control_reg(base)          ((base) + PCI_MSI_FLAGS)
-#define msi_lower_address_reg(base)    ((base) + PCI_MSI_ADDRESS_LO)
-#define msi_upper_address_reg(base)    ((base) + PCI_MSI_ADDRESS_HI)
-#define msi_data_reg(base, is64bit)    \
-       ((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
-#define msi_mask_bits_reg(base, is64bit) \
-       ((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
-#define msi_pending_bits_reg(base, is64bit) \
-       ((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
-#define multi_msi_capable(control) \
-       (1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
-#define multi_msi_enable(control, num) \
-       ((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
-#define is_64bit_address(control)      (!!((control) & PCI_MSI_FLAGS_64BIT))
-#define is_mask_bit_support(control)   (!!((control) & PCI_MSI_FLAGS_MASKBIT))
-
-#define msix_control_reg(base)         ((base) + PCI_MSIX_FLAGS)
-#define msix_table_offset_reg(base)    ((base) + PCI_MSIX_TABLE)
-#define msix_pba_offset_reg(base)      ((base) + PCI_MSIX_PBA)
-#define msix_table_size(control)       (((control) & PCI_MSIX_FLAGS_QSIZE) + 1)
-
 /*
  * MSI Defined Data Structures
  */
diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c
index 8831ce068c..5e4e89b3c0 100644
--- a/xen/arch/x86/msi.c
+++ b/xen/arch/x86/msi.c
@@ -21,6 +21,7 @@
 #include <xen/iocap.h>
 #include <xen/keyhandler.h>
 #include <xen/pfn.h>
+#include <xen/msi.h>
 
 #include <asm/apic.h>
 #include <asm/genapic.h>
@@ -29,7 +30,6 @@
 #include <asm/irq-vectors.h>
 #include <asm/smp.h>
 #include <asm/desc.h>
-#include <asm/msi.h>
 #include <asm/fixmap.h>
 #include <asm/p2m.h>
 
diff --git a/xen/drivers/passthrough/amd/iommu.h 
b/xen/drivers/passthrough/amd/iommu.h
index 52f748310b..ba22506f58 100644
--- a/xen/drivers/passthrough/amd/iommu.h
+++ b/xen/drivers/passthrough/amd/iommu.h
@@ -26,8 +26,8 @@
 #include <xen/tasklet.h>
 #include <xen/sched.h>
 #include <xen/domain_page.h>
+#include <xen/msi.h>
 
-#include <asm/msi.h>
 #include <asm/apicdef.h>
 
 #include "iommu-defs.h"
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
index f736054b2b..0ed39a6de9 100644
--- a/xen/drivers/vpci/msi.c
+++ b/xen/drivers/vpci/msi.c
@@ -18,11 +18,10 @@
 
 #include "private.h"
 
+#include <xen/msi.h>
 #include <xen/sched.h>
 #include <xen/softirq.h>
 
-#include <asm/msi.h>
-
 static uint32_t cf_check control_read(
     const struct pci_dev *pdev, unsigned int reg, void *data)
 {
diff --git a/xen/drivers/vpci/msix.c b/xen/drivers/vpci/msix.c
index 5b01859acf..05056b5ea1 100644
--- a/xen/drivers/vpci/msix.c
+++ b/xen/drivers/vpci/msix.c
@@ -21,9 +21,9 @@
 
 #include <xen/io.h>
 #include <xen/lib.h>
+#include <xen/msi.h>
 #include <xen/sched.h>
 
-#include <asm/msi.h>
 #include <asm/p2m.h>
 #include <asm/x86_emulate.h>
 
diff --git a/xen/include/xen/msi.h b/xen/include/xen/msi.h
index c903d0050c..4e922965de 100644
--- a/xen/include/xen/msi.h
+++ b/xen/include/xen/msi.h
@@ -7,6 +7,27 @@
 
 #include <asm/msi.h>
 
+#define msi_control_reg(base)          ((base) + PCI_MSI_FLAGS)
+#define msi_lower_address_reg(base)    ((base) + PCI_MSI_ADDRESS_LO)
+#define msi_upper_address_reg(base)    ((base) + PCI_MSI_ADDRESS_HI)
+#define msi_data_reg(base, is64bit)    \
+       ((base) + ((is64bit) ? PCI_MSI_DATA_64 : PCI_MSI_DATA_32))
+#define msi_mask_bits_reg(base, is64bit) \
+       ((base) + PCI_MSI_MASK_BIT - ((is64bit) ? 0 : 4))
+#define msi_pending_bits_reg(base, is64bit) \
+       ((base) + PCI_MSI_MASK_BIT + ((is64bit) ? 4 : 0))
+#define multi_msi_capable(control) \
+       (1U << MASK_EXTR(control, PCI_MSI_FLAGS_QMASK))
+#define multi_msi_enable(control, num) \
+       ((control) |= MASK_INSR(fls(num) - 1, PCI_MSI_FLAGS_QSIZE))
+#define is_64bit_address(control)      (!!((control) & PCI_MSI_FLAGS_64BIT))
+#define is_mask_bit_support(control)   (!!((control) & PCI_MSI_FLAGS_MASKBIT))
+
+#define msix_control_reg(base)         ((base) + PCI_MSIX_FLAGS)
+#define msix_table_offset_reg(base)    ((base) + PCI_MSIX_TABLE)
+#define msix_pba_offset_reg(base)      ((base) + PCI_MSIX_PBA)
+#define msix_table_size(control)       (((control) & PCI_MSIX_FLAGS_QSIZE) + 1)
+
 int pdev_msix_assign(struct domain *d, struct pci_dev *pdev);
 int pdev_msi_init(struct pci_dev *pdev);
 void pdev_msi_deinit(struct pci_dev *pdev);
-- 
2.55.0

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.