dm: don't deassign pass through PCIe device in DM

Let the ACRN HV to do this in shutdown sequence. In this case, the RTVM could be
still alive if something wrong happened to cause the DM died.

Tracked-On: #4428
Signed-off-by: Li Fei1 <fei1.li@intel.com>
This commit is contained in:
Li Fei1 2020-02-26 17:17:55 +08:00 committed by wenlingz
parent 67cb1029d9
commit 64bf4fb8f4
2 changed files with 10 additions and 2 deletions

View File

@ -686,7 +686,8 @@ vm_loop(struct vmctx *ctx)
break;
}
if (VM_SUSPEND_SYSTEM_RESET == vm_get_suspend_mode()) {
/* RTVM can't be reset */
if ((VM_SUSPEND_SYSTEM_RESET == vm_get_suspend_mode()) && (!is_rtvm)) {
vm_system_reset(ctx);
}

View File

@ -45,6 +45,7 @@
#include "pciio.h"
#include "pci_core.h"
#include "acpi.h"
#include "dm.h"
/* Some audio drivers get topology data from ACPI NHLT table.
@ -558,7 +559,13 @@ passthru_deinit(struct vmctx *ctx, struct pci_vdev *dev, char *opts)
pcidev.phys_bdf = ptdev->phys_bdf;
pciaccess_cleanup();
free(ptdev);
vm_deassign_pcidev(ctx, &pcidev);
if (!is_rtvm) {
/* Let the HV to deassign the pt device for RTVM, In this case, the RTVM
* could still be alive if DM died.
*/
vm_deassign_pcidev(ctx, &pcidev);
}
}
/* bind pin info for pass-through device */