diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2008-10-21 09:53:34 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2008-10-21 09:53:34 +0100 |
commit | 519c6bedbf32f92042df4e445ebb2b3a6be91d0f (patch) | |
tree | 3853c112cc5a741cd9606b4595d3cff46b4298b6 | |
parent | 4bd9f67f5cb1221b2294c9e762f91ee07700d537 (diff) | |
download | xen-519c6bedbf32f92042df4e445ebb2b3a6be91d0f.tar.gz xen-519c6bedbf32f92042df4e445ebb2b3a6be91d0f.tar.bz2 xen-519c6bedbf32f92042df4e445ebb2b3a6be91d0f.zip |
Fix ioapic_rte_to_remap_entry() on IA64.
Signed-off-by: Anthony Xu <anthony.xu@intel.com>
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
-rw-r--r-- | xen/drivers/passthrough/vtd/intremap.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/xen/drivers/passthrough/vtd/intremap.c b/xen/drivers/passthrough/vtd/intremap.c index 93218b6c09..059ebf5a24 100644 --- a/xen/drivers/passthrough/vtd/intremap.c +++ b/xen/drivers/passthrough/vtd/intremap.c @@ -129,7 +129,13 @@ static int ioapic_rte_to_remap_entry(struct iommu *iommu, memcpy(&new_ire, iremap_entry, sizeof(struct iremap_entry)); if ( rte_upper ) + { +#if defined(__i386__) || defined(__x86_64__) new_ire.lo.dst = (value >> 24) << 8; +#else /* __ia64__ */ + new_ire.lo.dst = value >> 16; +#endif + } else { *(((u32 *)&new_rte) + 0) = value; |