usbatm : modprobe & rmmod

Roman Kagan rkagan at
Mon Jan 24 13:54:32 EST 2005

  Hi Duncan,

While adjusting cxacru2 to the new API, I've come across a few points
I'd like to clarify:

1) ->bind, ->heavy_init, and ->unbind are all passed a struct
   usbatm_data which already has a valid reference to the usb_intf.
   Does it need to be present in the function parameters?

2) what's the purpose of ->atm_stop?  I can't imagine needing this given
   it is immediately followed by ->unbind.

3) usbatm_heavy_init is always called if ->heavy_init is available, even
   if the modem is already initialized.  In this case creating a kthread
   just to detect it and exit seems a bit of an overkill.  How about
   exporting usbatm_heavy_init to be called by the minidriver in ->bind,
   if needed?
   Alternatively, ->heavy_init can be made to
   take a parameter saying if we really want it heavy.  Then it's first
   called synchronously in the light version, and if it fails with, say,
   -ETRYAGAIN, spawn a kthread with the heavy version.

4) I have a couple of delays in cxacru_upload_firmware for the modem to
   digest the commands I'm sending.  The delays are rather big:
   msleep(1000) and msleep(4000).  How can I interrupt these, so that
   kthread_stop in usbatm_disconnect doesn't wait too long?


More information about the Usbatm mailing list