[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 2/5] libxl: add new pvusb backend "qusb" provided by qemu
>>> On 3/25/2016 at 02:29 PM, in message <56F4DADE.4040200@xxxxxxxx>, Juergen >>> Gross <jgross@xxxxxxxx> wrote: > On 25/03/16 03:23, Chun Yan Liu wrote: > > > > > >>>> On 3/23/2016 at 08:24 PM, in message > > <1458735847-9448-3-git-send-email-jgross@xxxxxxxx>, Juergen Gross > > <jgross@xxxxxxxx> wrote: > >> Add a new pvusb backend type "qusb" which is provided by qemu. It can > >> be selected either by specifying the type directly in the configuration > >> or it is selected automatically by libxl in case there is no "usbback" > >> driver loaded. > >> > >> Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > >> --- > >> docs/man/xl.cfg.pod.5 | 11 +++- > >> tools/libxl/libxl_device.c | 3 +- > >> tools/libxl/libxl_dm.c | 8 +++ > >> tools/libxl/libxl_internal.h | 1 + > >> tools/libxl/libxl_pvusb.c | 102 > +++++++++++++++++++++++++++-------- > >> tools/libxl/libxl_types.idl | 1 + > >> tools/libxl/libxl_types_internal.idl | 1 + > >> 7 files changed, 101 insertions(+), 26 deletions(-) > >> > >> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h > >> index fc7bdab..2db8b1b 100644 > >> --- a/tools/libxl/libxl_internal.h > >> +++ b/tools/libxl/libxl_internal.h > >> @@ -22,6 +22,21 @@ > >> > >> #define USBHUB_CLASS_CODE 9 > >> > >> +static int usbback_is_loaded(libxl__gc *gc) > >> +{ > >> + int r; > >> + struct stat st; > >> + > >> + r = lstat(SYSFS_USBBACK_DRIVER, &st); > >> + > >> + if (r == 0) > >> + return 1; > >> + if (r < 0 && errno == ENOENT) > >> + return 0; > >> + LOGE(ERROR, "Accessing %s", SYSFS_USBBACK_DRIVER); > >> + return -1; > >> +} > >> + > >> static int libxl__device_usbctrl_setdefault(libxl__gc *gc, uint32_t > >> domid, > > >> libxl_device_usbctrl > >> *usbctrl) > > >> { > >> @@ -36,7 +51,8 @@ static int libxl__device_usbctrl_setdefault(libxl__gc > *gc, > >> uint32_t domid, > >> > >> if (usbctrl->type == LIBXL_USBCTRL_TYPE_AUTO) { > >> if (domtype == LIBXL_DOMAIN_TYPE_PV) { > >> - usbctrl->type = LIBXL_USBCTRL_TYPE_PV; > >> + usbctrl->type = usbback_is_loaded(gc) ? LIBXL_USBCTRL_TYPE_PV > >> > > The condition should be (usbback_is_loaded(gc) > 0)? > > usbback_is_loaded(gc) < 0 means lstat error, cannot determine if the > > usbback driver is loaded. > > Good point. I think in error case I should rather abort the operation. > > Thoughts? I think it's OK. In another case when we check if a USB device is assigned or not, we call get_assigned_devices(), it that function fails, we cannot determine if a USB device is assigned or not, the handling is just abort. So I think here if cannot determine usbback is loaded or not, we can also abort and report error directly. Chunyan > > > Juergen > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |