Two fixes for mass storage passthrough:
1. Bulk IN buffer allocation now rounds up to the endpoint's
max_packet_size. nusb (and the USB spec) require IN transfers to be
multiples of max_packet_size. Without this, SCSI INQUIRY (36 bytes on
a 512-byte max_packet_size endpoint) was rejected, causing the kernel
to repeatedly reset the device.
2. String descriptor requests for indices not in the local string pool
are now forwarded to the device handler. This fixes interface and
configuration string descriptors (e.g., iInterface=5) that exist on
the real device but weren't populated in the synthetic string pool.
Tested: USB mass storage gadget via dummy_hcd successfully enumerates,
mounts, reads, and writes through the USBIP passthrough.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>