udev
config
In process context, must be able to sleep
Device interface drivers are not allowed to change device configurations. This is because changing configurations will destroy the interface the driver is bound to and create new ones; it would be like a floppy-disk driver telling the computer to replace the floppy-disk drive with a tape drive!
Still, in certain specialized circumstances the need may arise. This routine gets around the normal restrictions by using a work thread to submit the change-config request.
Returns 0 if the request was successfully queued, error code otherwise. The caller has no way to know whether the queued request will eventually succeed.