Re: [PATCH] usb: gadget: f_fs: Fix kernel panic for SuperSpeed

From: Felipe Balbi
Date: Wed May 04 2016 - 06:39:43 EST



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