Openmoko Bug #2240: removing/reloading g_ether not working

Openmoko Public Trac bugs at docs.openmoko.org
Mon Apr 27 14:14:13 CEST 2009


#2240: removing/reloading g_ether not working
-------------------------+--------------------------------------------------
 Reporter:  frankmpunkt  |          Owner:  openmoko-devel
     Type:  defect       |         Status:  new           
 Priority:  high         |      Milestone:                
Component:  unknown      |        Version:  unspecified   
 Severity:  normal       |       Keywords:                
 Haspatch:  0            |      Blockedby:                
Estimated:               |    Patchreview:                
 Blocking:               |   Reproducible:                
-------------------------+--------------------------------------------------

Comment(by lindi):

 It seems that "insmod g_ether.ko" calls register_netdev() but "rmmod
 g_ether" does not call unregister_netdev(). I think the calls _should_ go
 like

 {{{
 insmod g_ether.ko
  init()
   usb_composite_register()
    usb_gadget_register_driver()
     driver->bind() = eth_bind()
      gether_setup()
       register_netdev()

 rmmod g_ether
  cleanup()
   usb_composite_unregister()
    usb_gadget_unregister_driver()
     driver->unbind() = eth_unbind()
      gether_cleanup()
       unregister_netdev()

 }}}

 but the problem is that in s3c2410_udc.c
 * usb_gadget_register_driver calls bind() but
 * usb_gadget_unregister_driver() does not call unbind().

 I checked that _every other_ usb_gadget_unregister_driver in the kernel
 does call unbind(), for example
 * atmel_usba_udc.c
 * pxa25x_udc.c
 * omap_udc.c
 * fsl_usb2_udc.c

 so why does s3c2410_udc.c not call unbind()?

-- 
Ticket URL: <https://docs.openmoko.org/trac/ticket/2240#comment:4>
docs.openmoko.org <http://docs.openmoko.org/trac/>
openmoko trac


More information about the devel mailing list