By my observation, USB drivers' disconnect() methods are
called by (at least) three different kinds of threads:
- khubd ... internal to the USB subsystem, this detects
hub events like "device disconnected" and shuts down
drivers attached to them. Including children of hubs that
were connected to it.
- rmmod ... if you rmmod the controller for the root hub
for that bus (USB), this gets reflected to all the devices.
(Though come to think of it, maybe that's still handled in
part by khubd.)
- apmd ... in some cases, resuming after a suspend means
re-initializing the controller (if it lost power), and hence
disconnecting all the devices connected to its bus.
So yes, this method is guaranteed to be called in some sort
of thread context.
- Dave
----- Original Message -----
From: "Gordon McNutt" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, January 14, 2002 4:24 PM
Subject: [linux-usb-devel] down() in skel_disconnect
> I was just wondering in what context skel_disconnect() is called. Since
> it's blocking on a semaphore I assume this rules out IRQ handlers and
> tasklets. Does the USB subsystem employ a kernel thread or something?
>
> Regards,
> --gmcnutt
>
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel