Hi, Jim Lin <jilin@xxxxxxxxxx> writes: <snip> >>> In f_fs.c >>> " >>> static int __ffs_data_do_os_desc(enum ffs_os_desc_type type, >>> struct usb_os_desc_header *h, void *data, >>> unsigned len, void *priv) >>> { >>> struct ffs_data *ffs = priv; >>> u8 length; >>> >>> ENTER(); >>> >>> switch (type) { >>> case FFS_OS_DESC_EXT_COMPAT: { >>> struct usb_ext_compat_desc *d = data; >>> int i; >>> >>> if (len < sizeof(*d) || >>> d->bFirstInterfaceNumber >= ffs->interfaces_count || >>> d->Reserved1) >>> return -EINVAL; >>> " >> that's fine, but this is only failing because something else is >> returning the wrong set of descriptors (SS vs HS). That's the bug we >> want to fix, not work around it. >> > Thanks. you're welcome, but to fix that bug we need more information. Why is composite.c using the wrong set of descriptors ? What is your setup ? Are you using an in-kernel gadget ? which one ? Using configfs or legacy gadgets ? gadgetfs ? f_fs ? How to trigger this ? Can you provide instructions and (in case of gadgetfs/ffs) code to create a gadget that hits this problem ? -- balbi
Attachment:
signature.asc
Description: PGP signature