[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/msi: Refactor msi_compose_message() to not require an irq_desc
commit ac6e1ae87b229f452fa5859bf95dc51459eaeb68 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Thu Nov 7 15:17:48 2013 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu Nov 7 15:17:48 2013 +0100 x86/msi: Refactor msi_compose_message() to not require an irq_desc Subsequent changes will cause HPET MSIs to not have an associated IRQ. Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Reviewed-by: Tim Deegan <tim@xxxxxxx> --- xen/arch/x86/hpet.c | 2 +- xen/arch/x86/msi.c | 9 ++++----- xen/drivers/passthrough/vtd/iommu.c | 2 +- xen/include/asm-x86/msi.h | 3 ++- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/hpet.c b/xen/arch/x86/hpet.c index 4373791..3a4f7e8 100644 --- a/xen/arch/x86/hpet.c +++ b/xen/arch/x86/hpet.c @@ -331,7 +331,7 @@ static int __hpet_setup_msi_irq(struct irq_desc *desc) { struct msi_msg msg; - msi_compose_msg(desc, &msg); + msi_compose_msg(desc->arch.vector, desc->arch.cpu_mask, &msg); return hpet_msi_write(desc->action->dev_id, &msg); } diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c index b43c36a..284042e 100644 --- a/xen/arch/x86/msi.c +++ b/xen/arch/x86/msi.c @@ -124,13 +124,12 @@ static void msix_put_fixmap(struct arch_msix *msix, int idx) /* * MSI message composition */ -void msi_compose_msg(struct irq_desc *desc, struct msi_msg *msg) +void msi_compose_msg(unsigned vector, const cpumask_t *cpu_mask, struct msi_msg *msg) { unsigned dest; - int vector = desc->arch.vector; memset(msg, 0, sizeof(*msg)); - if ( !cpumask_intersects(desc->arch.cpu_mask, &cpu_online_map) ) { + if ( !cpumask_intersects(cpu_mask, &cpu_online_map) ) { dprintk(XENLOG_ERR,"%s, compose msi message error!!\n", __func__); return; } @@ -138,7 +137,7 @@ void msi_compose_msg(struct irq_desc *desc, struct msi_msg *msg) if ( vector ) { cpumask_t *mask = this_cpu(scratch_mask); - cpumask_and(mask, desc->arch.cpu_mask, &cpu_online_map); + cpumask_and(mask, cpu_mask, &cpu_online_map); dest = cpu_mask_to_apicid(mask); msg->address_hi = MSI_ADDR_BASE_HI; @@ -491,7 +490,7 @@ int __setup_msi_irq(struct irq_desc *desc, struct msi_desc *msidesc, desc->msi_desc = msidesc; desc->handler = handler; - msi_compose_msg(desc, &msg); + msi_compose_msg(desc->arch.vector, desc->arch.cpu_mask, &msg); return write_msi_msg(msidesc, &msg); } diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c index 2dbe97a..97d5b5e 100644 --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1039,7 +1039,7 @@ static void dma_msi_set_affinity(struct irq_desc *desc, const cpumask_t *mask) return; } - msi_compose_msg(desc, &msg); + msi_compose_msg(desc->arch.vector, desc->arch.cpu_mask, &msg); /* Are these overrides really needed? */ if (x2apic_enabled) msg.address_hi = dest & 0xFFFFFF00; diff --git a/xen/include/asm-x86/msi.h b/xen/include/asm-x86/msi.h index 9eeef63..89a9266 100644 --- a/xen/include/asm-x86/msi.h +++ b/xen/include/asm-x86/msi.h @@ -231,7 +231,8 @@ struct arch_msix { }; void early_msi_init(void); -void msi_compose_msg(struct irq_desc *, struct msi_msg *); +void msi_compose_msg(unsigned vector, const cpumask_t *mask, + struct msi_msg *msg); void __msi_set_enable(u16 seg, u8 bus, u8 slot, u8 func, int pos, int enable); void mask_msi_irq(struct irq_desc *); void unmask_msi_irq(struct irq_desc *); -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |