Re: [PATCH v2 1/3] Revert "usb: gadget: u_audio: add real feedback implementation"

Ferry Toth
2021-08-27T20:41:13Z

Op 27-08-2021 om 10:29 schreef Greg Kroah-Hartman:
> On Thu, Aug 26, 2021 at 08:57:37PM +0200, Ferry Toth wrote:
>> This reverts commit e89bb4288378b85c82212b60dc98ecda6b3d3a70.
>>
>> The commit is part of a series with commit
>> 24f779dac8f3efb9629adc0e486914d93dc45517 causing a BUG on dwc3
>> hardware, at least on Intel Merrifield platform when configured
>> through configfs:
>> BUG: kernel NULL pointer dereference, address: 0000000000000008
>> ...
>> RIP: 0010:dwc3_gadget_del_and_unmap_request+0x19/0xe0
>> ...
>> Call Trace:
>> dwc3_remove_requests.constprop.0+0x12f/0x170
>> __dwc3_gadget_ep_disable+0x7a/0x160
>> dwc3_gadget_ep_disable+0x3d/0xd0
>> usb_ep_disable+0x1c/0x70
>> u_audio_stop_capture+0x79/0x120 [u_audio]
>> afunc_set_alt+0x73/0x80 [usb_f_uac2]
>> composite_setup+0x224/0x1b90 [libcomposite]
>>
>> Pavel's suggestion to add
>> `echo "adaptive" > functions/uac2.usb0/c_sync` to the configfs script
>> resolves the issue.
>> Thinh suggests "the crash is probably because of f_uac2 prematurely
>> freeing feedback request before its completion. usb_ep_dequeue() is
>> asynchronous. dwc2() may treat it as a synchronous call so you didn't
>> get a crash."
>>
>> Revert as this is a regression and the kernel shouldn't crash depending
>> on configuration parameters.
>
> Are these normal configuration options in the wild, or is this just
> something that you "can do"?

It's a work around suggested by Pavel, a line that can be added to
configfs script.

>> Signed-off-by: Ferry Toth <ftoth@exalondelft.nl>
>
> I need an ack from the original authors to revert all this...

A fix has appeared:
https://lore.kernel.org/linux-usb/1jfsuvw817.fsf@starbuckisacylon.baylibre.com/T/#m922149b7e74204c8ed1bed2c624910ab4eafd43c

This has been acked by Felipe. If we can get that in 5.14.0 it would be
preferable to reverting this series.

> thanks,
>
> greg k-h
>