[PATCH 21/24] x86: type-correct last parameter of map_domain_pirq()
Jan Beulich <[email protected]> Tue, 28 Jul 2026 15:24:37 +0200
| Newsgroups | gmane.comp.emulators.xen.devel |
|---|---|
| Message-ID | <[email protected]> |
This was meant to allow for non-MSI data to be passed if necessary, but the way XSM/Flask uses the (propagated) argument that's not going to work anyway without further adjustments. As no secondary use has surfaced in many years, switch to using the correct type. Leave XSM alone, as that'll be changed subsequently anyway (to then also no longer use plain void). Signed-off-by: Jan Beulich <[email protected]> --- a/xen/arch/x86/include/asm/irq.h +++ b/xen/arch/x86/include/asm/irq.h @@ -27,6 +27,7 @@ typedef struct { } vmask_t; struct irq_desc; +struct msi_info; /* * Xen logic for moving interrupts around CPUs allows manipulating interrupts @@ -161,7 +162,7 @@ struct arch_pirq { int pirq_shared(struct domain *d , int pirq); int map_domain_pirq(struct domain *d, int pirq, int irq, int type, - void *data); + struct msi_info *msi); int unmap_domain_pirq(struct domain *d, int pirq); int get_free_pirq(struct domain *d, int type); int get_free_pirqs(struct domain *d, unsigned int nr); --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2180,7 +2180,7 @@ int get_free_pirqs(struct domain *d, uns #define MAX_MSI_IRQS 32 /* limited by MSI capability struct properties */ int map_domain_pirq( - struct domain *d, int pirq, int irq, int type, void *data) + struct domain *d, int pirq, int irq, int type, struct msi_info *msi) { int ret = 0; int old_irq, old_pirq; @@ -2214,7 +2214,7 @@ int map_domain_pirq( return 0; } - ret = xsm_map_domain_irq(XSM_HOOK, d, irq, data); + ret = xsm_map_domain_irq(XSM_HOOK, d, irq, msi); if ( ret ) { dprintk(XENLOG_G_ERR, "dom%d: could not permit access to irq %d mapping to pirq %d\n", @@ -2245,7 +2245,6 @@ int map_domain_pirq( if ( type == MAP_PIRQ_TYPE_MSI || type == MAP_PIRQ_TYPE_MULTI_MSI ) { - struct msi_info *msi = (struct msi_info *)data; struct msi_desc *msi_desc; struct pci_dev *pdev; unsigned int nr = 0;