Hi Tony, W dniu 15.01.2016 o 23:48, Tony Lindgren pisze:
Hi all, Looks like there's some issue with the USB gadgets and configfs. I'm seeing rmmod of the UDC driver cause a warning and then reboot hangs the system. This happens at least with v4.4, and I've reproduced it with dwc3 and musb so it seems to be generic.
I can't reproduce your problem on 4.4-rc4 nor on 4.4 release with the script you provided I'm using Odroid XU3, which has dwc3.
I think Felipe is offline for next few days, but anyways here are the error messages and a shells script to reproduce the issue. Cheers, Tony
<snip>
Test script to reproduce the problem, need to uncomment the reboot part: 8< -------------------- #!/bin/bash # Change for your UDC controller udc_module=dwc3-omap udc_name=4a030000.dwc3
for me these are: udc_module=dwc3-exynos udc_name=12400000.dwc3
# # Calling this and then doing rmmod $udc_module # followed by reboot seems to produce the follow: # WARNING: CPU: 1 PID: 1617 at lib/debugobjects.c:263 # start_usb_gadgets() { vendor=0x1d6b product=0x0106 file=$1 mount -t configfs none /sys/kernel/config mkdir /sys/kernel/config/usb_gadget/g1 old_pwd=$(pwd) cd /sys/kernel/config/usb_gadget/g1 echo $product > idProduct echo $vendor > idVendor mkdir strings/0x409 echo 123456789 > strings/0x409/serialnumber echo foo > strings/0x409/manufacturer echo "Multi Gadget" > strings/0x409/product mkdir configs/c.1 echo 120 > configs/c.1/MaxPower mkdir configs/c.1/strings/0x409 echo "Conf 1" > configs/c.1/strings/0x409/configuration mkdir configs/c.2 echo 500 > configs/c.2/MaxPower mkdir configs/c.2/strings/0x409 echo "Conf 2" > configs/c.2/strings/0x409/configuration mkdir functions/mass_storage.0 echo $file > functions/mass_storage.0/lun.0/file ln -s functions/mass_storage.0 configs/c.1 ln -s functions/mass_storage.0 configs/c.2 # Not configuring further here just produces # WARNING: CPU: 1 PID: 1609 at lib/debugobjects.c:263 mkdir functions/acm.0 ln -s functions/acm.0 configs/c.1 ln -s functions/acm.0 configs/c.2 mkdir functions/ecm.0 ln -s functions/acm.0 configs/c.1
I assume you meant ecm.0 here and in the next line.
ln -s functions/acm.0 configs/c.2 # Adding rndis seems to cause alignment trap or some # random oops on reboot after rmmod $udc_module mkdir functions/rndis.0 ln -s functions/rndis.0 configs/c.1 ln -s functions/rndis.0 configs/c.2 echo $udc_name > /sys/kernel/config/usb_gadget/g1/UDC cd $old_pwd } function rmmod_and_shutdown() { rmmod $udc_module reboot } modprobe $udc_module start_usb_gadgets "" # uncomment this to reproduce bug # rmmod_and_shutdown
I have it uncommented, no problems. But before I run this script I need to modprobe libcomposite, though. AP -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html