aboutsummaryrefslogtreecommitdiffstats
path: root/unmodified_drivers
diff options
context:
space:
mode:
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>2007-01-27 13:32:27 +0000
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>2007-01-27 13:32:27 +0000
commit249c2a8ce6f2e8f193f73918dc1aeafe19b6a739 (patch)
tree38d12677f141c6cdf1ad53d08514f6ab4763ea79 /unmodified_drivers
parentf42eb8636f525fce8a8bec63dab14c24e3679641 (diff)
downloadxen-249c2a8ce6f2e8f193f73918dc1aeafe19b6a739.tar.gz
xen-249c2a8ce6f2e8f193f73918dc1aeafe19b6a739.tar.bz2
xen-249c2a8ce6f2e8f193f73918dc1aeafe19b6a739.zip
[HVM] Allow HVM guest to request invalidation of foreign mappings via
an I/O port write. Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Diffstat (limited to 'unmodified_drivers')
-rw-r--r--unmodified_drivers/linux-2.6/platform-pci/platform-pci.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
index 7973f86820..e6ff4107cb 100644
--- a/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
+++ b/unmodified_drivers/linux-2.6/platform-pci/platform-pci.c
@@ -214,6 +214,14 @@ static uint64_t get_callback_via(struct pci_dev *pdev)
#endif
}
+/* Invalidate foreign mappings (e.g., in qemu-based device model). */
+static uint16_t invlmap_port;
+void xen_invalidate_foreign_mappings(void)
+{
+ outb(0, invlmap_port);
+}
+EXPORT_SYMBOL(xen_invalidate_foreign_mappings);
+
static int __devinit platform_pci_init(struct pci_dev *pdev,
const struct pci_device_id *ent)
{
@@ -239,6 +247,8 @@ static int __devinit platform_pci_init(struct pci_dev *pdev,
return -ENOENT;
}
+ invlmap_port = ioaddr;
+
if (request_mem_region(mmio_addr, mmio_len, DRV_NAME) == NULL)
{
printk(KERN_ERR ":MEM I/O resource 0x%lx @ 0x%lx busy\n",