Re: usbfs, claiming entire usb devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 7 May 2009, Kay Sievers wrote:

> >> You have one file per device, and that file has normal unix file
> >> permissions. Userspace can grant access to that file by ownership or
> >> by adding an ACL. What else do we need?
> >
> > We need the ability to prevent the kernel from automatically
> > configuring a device.  We need the ability to prevent kernel drivers
> > from binding to a device before userspace programs get a chance.
> >
> >>  Why would the kernel care who
> >> opened the file, when the one was able to get through the normal file
> >> access check?
> >
> > Access checks can't be used, because programs want to stake their claim
> > to the device (and its file) even before the device has been plugged
> > in.  So there's no file and no ACL to set.
> 
> I see.
> 
> Can't userspace just unbind a possible driver, which is supported by
> libusub? Other such use-cases do that, like the UPS userspace drivers,
> which just unbind the device from a possible in-kernel driver to take
> it over.
> 
> Or is that a specific requirement where things would go wrong when the
> kernel binds to a device first?

You've got it.  Sometimes devices are in a very precarious state (such 
as during a firmware update) and they need to go into a particular 
configuration.  Letting the kernel install some random configuration at 
such times doesn't work.

Similarly, although devices are supposed to be able to switch configs 
at any time, in fact some buggy ones don't allow it.  And while letting 
a kernel driver bind to a device shouldn't cause any narm, with some 
buggy devices it does.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux