[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Ping: [PATCH] libxl/PCI: defer backend wait upon attaching to PV guest
On 14.12.2021 08:49, Jan Beulich wrote: > Attempting to wait when the backend hasn't been created yet can't work: > the function will complain "Backend ... does not exist". Move the > waiting past the creation of the backend (and that of other related > nodes), hoping that there are no other dependencies that would now be > broken. > > Fixes: 0fdb48ffe7a1 ("libxl: Make sure devices added by pci-attach are > reflected in the config") > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > --- > Just to make it explicit: I have no idea why the waiting is needed in > the first place. It's been there from the very introduction of PCI > passthrough support (commit b0a1af61678b). I therefore can't exclude > that an even better fix would be to simply omit the 2nd hunk here. Anyone, be it an ack or an alternative? Jan > --- a/tools/libs/light/libxl_pci.c > +++ b/tools/libs/light/libxl_pci.c > @@ -157,11 +157,6 @@ static int libxl__device_pci_add_xenstor > if (domtype == LIBXL_DOMAIN_TYPE_INVALID) > return ERROR_FAIL; > > - if (!starting && domtype == LIBXL_DOMAIN_TYPE_PV) { > - if (libxl__wait_for_backend(gc, be_path, GCSPRINTF("%d", > XenbusStateConnected)) < 0) > - return ERROR_FAIL; > - } > - > back = flexarray_make(gc, 16, 1); > > LOGD(DEBUG, domid, "Adding new pci device to xenstore"); > @@ -213,6 +208,9 @@ static int libxl__device_pci_add_xenstor > if (rc < 0) goto out; > } > > + if (!starting && domtype == LIBXL_DOMAIN_TYPE_PV) > + rc = libxl__wait_for_backend(gc, be_path, GCSPRINTF("%d", > XenbusStateConnected)); > + > out: > libxl__xs_transaction_abort(gc, &t); > if (lock) libxl__unlock_file(lock); > >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |