On Thu, 26 Mar 2020 16:40:09 +1100 David Gibson <da...@gibson.dropbear.id.au> wrote:
> 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. > This could maybe considered as a valid fix for 5.0 since this prevents guest crashes IIUC. But since this requires the two preliminary cleanup patches, I understand you may prefer to postpone that to 5.1. > Signed-off-by: David Gibson <da...@gibson.dropbear.id.au> > --- Reviewed-by: Greg Kurz <gr...@kaod.org> > hw/ppc/spapr_pci.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c > index 55ca9dee1e..5c8262413a 100644 > --- a/hw/ppc/spapr_pci.c > +++ b/hw/ppc/spapr_pci.c > @@ -1666,6 +1666,11 @@ static void spapr_pci_unplug_request(HotplugHandler > *plug_handler, > return; > } > > + if (spapr_phb_is_nvlink_dev(pdev, phb)) { > + error_setg(errp, "PCI: Cannot unplug NVLink2 devices"); > + return; > + } > + > /* ensure any other present functions are pending unplug */ > if (PCI_FUNC(pdev->devfn) == 0) { > for (i = 1; i < 8; i++) {