On 15-Nov-2002 Randy.Dunlap wrote: > On Thu, 14 Nov 2002, Duncan Haldane wrote: >| >| any ideas? > > Hi, > > I think that the usb_bus_list_lock semaphore just isn't > initialized yet. > This can happen because we don't have much control over > the order of initcalls in 2.4. There is more control > over them in 2.5. > > So I think that the usb_cpia_init() is happening before usb_init().
Yes, I think you are right. To test your idea, I moved the initialization init_MUTEX(&usb_bus_list_lock); from usb_init() to just before the call to usb_scan_devices() in usb_register() and the oops went away and cpia worked. I see that in the working code prior to 2.4.13, usb_init() doesnt handle any usb_bus_list_lock initialization. Hmmm. I believe that cpia_usb.c cannot be compiled into the kernel unless usb is also compiled into the kernel. Is there any way to move the initialization of cpia_usb to later in the boot sequence? Or put some #ifndef module ... #endif code that moves the lock initialization to before the call to usb_scan devices, and tests whether it is done so it is only initialized the first time usb_register is called? Duncan > One thing that we could do is have usb_register() return an > error code in this case, but that probably wouldn't help in > the long term. If it were a module, the module could be > reloaded, but in this case, it's built-into-kernel, so it > would just be dead. > > Another thing that we could do is try to do some init inside > usb_register(), but that looks unsafe (racy). > > Another thing that we might do is try to force (control) the > init order. This might be the best fix overall. > > Other ideas out there? > > -- > ~Randy ---------------------------------- E-Mail: Duncan Haldane <[EMAIL PROTECTED]> Date: 15-Nov-2002 Time: 03:16:47 This message was sent by XFMail ---------------------------------- ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel