• Anton Vorontsov's avatar
    USB: fsl_usb2_udc: Report disconnect before unbinding · 1f15a506
    Anton Vorontsov authored
    Gadgets disable endpoints in their disconnect callbacks, so
    we must call disconnect before unbinding.
    
    The patch fixes following badness:
    
    root@b1:~# insmod fsl_usb2_udc.ko
    Freescale High-Speed USB SOC Device Controller driver (Apr 20, 2007)
    root@b1:~# insmod g_ether.ko
    g_ether gadget: using random self ethernet address
    g_ether gadget: using random host ethernet address
    usb0: MAC 26:07:ba:c0:44:33
    usb0: HOST MAC 96:81:0c:05:4d:e3
    g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
    g_ether gadget: g_ether ready
    fsl-usb2-udc: bind to driver g_ether
    g_ether gadget: high speed config #1: CDC Ethernet (ECM)
    root@b1:~# rmmod g_ether.ko
    ------------[ cut here ]------------
    Badness at drivers/usb/gadget/composite.c:871
    [...]
    NIP [e10c3454] composite_unbind+0x24/0x15c [g_ether]
    LR [e10aa454] usb_gadget_unregister_driver+0x13c/0x164 [fsl_usb2_udc]
    Call Trace:
    [df145e80] [ffffff94] 0xffffff94 (unreliable)
    [df145eb0] [e10aa454] usb_gadget_unregister_driver+0x13c/0x164 [fsl_usb2_udc]
    [df145ed0] [e10c4c40] usb_composite_unregister+0x3c/0x4c [g_ether]
    [df145ee0] [c006bcc0] sys_delete_module+0x130/0x19c
    [df145f40] [c00142d8] ret_from_syscall+0x0/0x38
    [...]
    unregistered gadget driver 'g_ether'
    Signed-off-by: default avatarAnton Vorontsov <avorontsov@ru.mvista.com>
    Acked-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    1f15a506
fsl_usb2_udc.c 64.7 KB