Public bug reported:

== System ==
Ubuntu 24.04 LTS (Noble)
Affected kernel: 6.8.0-100-generic
Working kernels: 6.8.0-94-generic, 6.8.0-90-generic

== Device ==
ZWO EFF (Electronic Filter Focuser)
USB ID: 03c3:1f10
Connected via Digi AnywhereUSB (vhci_hcd)
Single HID interface, vendor-defined usage page 0xFF00

== Symptom ==
On 6.8.0-100, usbhid fails to probe the device every time:
  usbhid 5-1:1.0: can't add hid device: -22
  usbhid: probe of 5-1:1.0 failed with error -22
No /dev/hidraw is created. Device is completely inaccessible.

On 6.8.0-94, hid-generic probes successfully:
  hid-generic 0003:03C3:1F10.0001: hiddev0,hidraw0: USB HID v1.01 Device [ZW0 
ZWO EFF]

== Evidence ==
HID descriptor bytes are identical between kernels (verified via
/sys/bus/usb/devices/5-1/descriptors and usbhid-dump). The descriptor
is well-formed. The regression is in usbhid/hid-core, not the device
or transport layer.

== Root Cause ==
The change to __hid_request() in drivers/hid/hid-core.c visible in
the diff linux_6.8.0-94.96_6.8.0-100.100.diff.gz:

  - ret = hid->ll_driver->raw_request(hid, report->id, buf, len, ...);
  + ret = hid_hw_raw_request(hid, report->id, buf, len, ...);

Combined with new null report ID buffer offset logic:
  if (report->id == 0) {
      data_buf++;
      len++;
  }

This causes double-handling of the report ID byte, resulting in an
invalid length passed to raw_request, which returns -EINVAL during probe.

== Workaround ==
Boot into 6.8.0-90-generic or 6.8.0-94-generic.
HID_QUIRK_NO_INIT_REPORTS (0x0080) does not resolve the issue.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2142178

Title:
  usbhid: probe fails with -22 (EINVAL) for HID devices over vhci_hcd on
  6.8.0-100, regression from 6.8.0-94

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2142178/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to