spapr: Don't allow unplug of NVLink2 devices

Currently, we can't properly handle unplug of NVLink2 devices, because we
don't have code to tear down their special memory resources.  There's not
a lot of impetus to implement that: since hardware NVLink2 devices can't
be hot unplugged, the guest side drivers don't usually support unplug
anyway.

Therefore, simply prevent unplug of NVLink2 devices.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru>
This commit is contained in:
David Gibson 2020-03-26 16:27:37 +11:00
parent beae5e9dc6
commit 05af7c77f5

View File

@ -1665,6 +1665,10 @@ static void spapr_pci_unplug_request(HotplugHandler *plug_handler,
error_setg(errp, "PCI: Hot unplug of PCI bridges not supported");
return;
}
if (object_property_get_uint(OBJECT(pdev), "nvlink2-tgt", NULL)) {
error_setg(errp, "PCI: Cannot unplug NVLink2 devices");
return;
}
/* ensure any other present functions are pending unplug */
if (PCI_FUNC(pdev->devfn) == 0) {