From 438f0453656e54f3f4db248fd280673992d5ad54 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Wed, 29 Apr 2009 16:28:37 +0100 Subject: [PATCH] passthrough: don't call xc_deassign_device() This series of patches modify the order of resetting/deassigning device. I modify the order of resetting/deassigning device like below. When guest OS shutdowns or a device is hotremoved. 1. Xend resets devices. 2. Xend deassigns devices. Because if devices are deassigned before the reset, dom0 memory may be broken by DMA This patch modifies ioemu not to call xc_deassign_device() Signed-off-by: Yuji Shimada --- hw/pass-through.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/hw/pass-through.c b/hw/pass-through.c index 7bd2febb..6a531371 100644 --- a/hw/pass-through.c +++ b/hw/pass-through.c @@ -3972,13 +3972,6 @@ static int unregister_real_device(int slot) /* unregister real device's MMIO/PIO BARs */ pt_unregister_regions(assigned_device); - /* deassign the dev to dom0 */ - bdf |= (pci_dev->bus & 0xff) << 16; - bdf |= (pci_dev->dev & 0x1f) << 11; - bdf |= (pci_dev->func & 0x1f) << 8; - if ( (rc = xc_deassign_device(xc_handle, domid, bdf)) != 0) - PT_LOG("Error: Revoking the device failed! rc=%d\n", rc); - /* mark this slot as free */ php_dev->valid = 0; php_dev->pt_dev = NULL; -- 2.39.5