hi, on the librem5 with defconfig https://source.puri.sm/martin.kepplinger/linux-next/blob/next-20200110/librem5_cpuidle_mainline_atf/arch/arm64/configs/librem5_defconfig running next-20200110 I load g_multi during startup. rmmod g_multi results in error like [ 190.995685] dwc3 38100000.usb: timed out waiting for SETUP phase or [ 109.702545] dwc3 38100000.usb: failed to enable ep0out and hangs rmmod. What "fixes" the problem is the following change below. Does that make any sense to you? How would a real fix look like here, or how would I further debug? thanks, martin --- a/drivers/usb/gadget/legacy/multi.c +++ b/drivers/usb/gadget/legacy/multi.c @@ -459,7 +459,8 @@ static int multi_unbind(struct usb_composite_dev *cdev) #ifdef USB_ETH_RNDIS usb_put_function(f_acm_rndis); #endif - usb_put_function_instance(fi_acm); + /* FIXME the following hangs during rmmod */ + // usb_put_function_instance(fi_acm); #ifdef USB_ETH_RNDIS usb_put_function(f_rndis); usb_put_function_instance(fi_rndis);