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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to