mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
VT-d: use msi_compose_msg()
... instead of open coding it. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Xiantao Zhang <xiantao.zhang@intel.com> Acked-by: Keir Fraser <keir@xen.org>
This commit is contained in:
1 parent
15aa6c6748
commit
83cd2038fe
2 files changed
+3
-26
No files matched your search
@@ -1074,22 +1074,11 @@ static void dma_msi_set_affinity(struct irq_desc *desc, const cpumask_t *mask)
|
||||
return;
|
||||
}
|
||||
|
||||
memset(&msg, 0, sizeof(msg));
|
||||
msg.data = MSI_DATA_VECTOR(desc->arch.vector) & 0xff;
|
||||
msg.data |= 1 << 14;
|
||||
msg.data |= (INT_DELIVERY_MODE != dest_LowestPrio) ?
|
||||
MSI_DATA_DELIVERY_FIXED:
|
||||
MSI_DATA_DELIVERY_LOWPRI;
|
||||
|
||||
/* Follow MSI setting */
|
||||
msi_compose_msg(desc, &msg);
|
||||
/* Are these overrides really needed? */
|
||||
if (x2apic_enabled)
|
||||
msg.address_hi = dest & 0xFFFFFF00;
|
||||
msg.address_lo = (MSI_ADDRESS_HEADER << (MSI_ADDRESS_HEADER_SHIFT + 8));
|
||||
msg.address_lo |= INT_DEST_MODE ? MSI_ADDR_DESTMODE_LOGIC:
|
||||
MSI_ADDR_DESTMODE_PHYS;
|
||||
msg.address_lo |= (INT_DELIVERY_MODE != dest_LowestPrio) ?
|
||||
MSI_ADDR_REDIRECTION_CPU:
|
||||
MSI_ADDR_REDIRECTION_LOWPRI;
|
||||
msg.address_lo &= ~MSI_ADDR_DEST_ID_MASK;
|
||||
msg.address_lo |= MSI_ADDR_DEST_ID(dest & 0xff);
|
||||
|
||||
spin_lock_irqsave(&iommu->register_lock, flags);
|
||||
|
||||
@@ -149,18 +149,6 @@ int msi_free_irq(struct msi_desc *entry);
|
||||
/*
|
||||
* MSI Defined Data Structures
|
||||
*/
|
||||
#define MSI_ADDRESS_HEADER 0xfee
|
||||
#define MSI_ADDRESS_HEADER_SHIFT 12
|
||||
#define MSI_ADDRESS_HEADER_MASK 0xfff000
|
||||
#define MSI_ADDRESS_DEST_ID_MASK 0xfff0000f
|
||||
#define MSI_TARGET_CPU_MASK 0xff
|
||||
#define MSI_TARGET_CPU_SHIFT 12
|
||||
#define MSI_DELIVERY_MODE 0
|
||||
#define MSI_LEVEL_MODE 1 /* Edge always assert */
|
||||
#define MSI_TRIGGER_MODE 0 /* MSI is edge sensitive */
|
||||
#define MSI_PHYSICAL_MODE 0
|
||||
#define MSI_LOGICAL_MODE 1
|
||||
#define MSI_REDIRECTION_HINT_MODE 0
|
||||
|
||||
struct msg_data {
|
||||
#if defined(__LITTLE_ENDIAN_BITFIELD)
|
||||
|
||||