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

From: Ferry Toth
Date: Fri Aug 27 2021 - 16:41:13 EST


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@xxxxxxxxxxxxxx>

I need an ack from the original authors to revert all this...

A fix has appeared:
https://lore.kernel.org/linux-usb/1jfsuvw817.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/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