Package: libusb-1.0-0
Version: 2:1.0.8-2
Severity: normal

I inadvertently tested lsusb 001 and libusb-1.0 on an i386 2.6.32 kernel
that had CONFIG_TIMERFD disabled.

In that configuration lsusb hangs on the first control transfer it
tries, which with `lsusb -v` was a request for the languages supported
for string descriptors. I got this output:

---
# LIBUSB_DEBUG=4 lsusb -v
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
libusb:error [handle_events] backend handle_events failed with error -99
libusb:error [libusb_cancel_transfer] cancel transfer failed error -5
---

After that, it did nothing but call poll every 60 seconds.

The same kernel worked with libusb-0.1-4 2:0.1.12-16 and usbutils
0.87-5. I can provide more information on versions or re-test my old
configurations, if that helps.

When I rebuilt the kernel with timerfd support turned on (and no other
changes), `lsusb -v` from the new usbutils worked fine. 

In a quick glance at the source for libusb-1.0, I think it was intended to
support systems without the timerfd syscall, but I guess that path
doesn't get tested much?

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.38+ (SMP w/2 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libusb-1.0-0 depends on:
ii  libc6                         2.11.2-11  Embedded GNU C Library: Shared lib

libusb-1.0-0 recommends no packages.

libusb-1.0-0 suggests no packages.

-- no debconf information

Attachment: signature.asc
Description: Digital signature

Reply via email to