> > +#include <linux/usbdevice_fs.h> > > + int rc = ioctl(hostfd, USBDEVFS_GET_SPEED, NULL); > > This (further) breaks a bunch of the Travis jobs - I assume because libusb > doesn't > always have this symbol: > > ../hw/usb/host-libusb.c:954:32: error: ‘USBDEVFS_GET_SPEED’ undeclared > (first use in this function)
It isn't libusb, it is the kernel (linux/usbdevice_fs.h). /me checks git ... Added in 4.13, so available for quite a while. I guess that is the prehistoric ubuntu version travis has? Given that we only need that workaround with rather new libusb versions (which have libusb_wrap_sys_device() support) which most likely isn't present in that old ubuntu version we can probably just do this: diff --git a/hw/usb/host-libusb.c b/hw/usb/host-libusb.c index 08604f787fdf..c25102f3aca1 100644 --- a/hw/usb/host-libusb.c +++ b/hw/usb/host-libusb.c @@ -942,7 +942,7 @@ static int usb_host_open(USBHostDevice *s, libusb_device *dev, int hostfd) usb_host_ep_update(s); libusb_speed = libusb_get_device_speed(dev); -#ifdef CONFIG_LINUX +#if LIBUSB_API_VERSION >= 0x01000107 && defined(CONFIG_LINUX) if (hostfd && libusb_speed == 0) { /* * Workaround libusb bug: libusb_get_device_speed() does not