Messages in this thread | | | From | Dmitry Torokhov <> | Date | Tue, 5 Oct 2021 09:51:02 -0700 | Subject | Re: [PATCH 2/2] usb: hub: Mark devices downstream a removable hub, as removable |
| |
Hi Alan,
On Tue, Oct 5, 2021 at 7:56 AM Alan Stern <stern@rowland.harvard.edu> wrote: > > On Mon, Oct 04, 2021 at 03:42:46PM -0700, Rajat Jain wrote: > > +Dmitry Torokhov > > > > Hi Greg, Oliver, > > > > Thanks for taking a look. > > > > On Wed, Sep 29, 2021 at 10:31 PM Greg Kroah-Hartman > > <gregkh@linuxfoundation.org> wrote: > > > > > > On Wed, Sep 29, 2021 at 03:48:23PM -0700, Rajat Jain wrote: > > > > If a usb device sits below a removable hub, mark the device also as > > > > removable. This helps with devices inserted on a standard removable hub or > > > > also thunderbold docks, to be shown as removable. > > > > > > > > Signed-off-by: Rajat Jain <rajatja@google.com> > > > > --- > > > > drivers/usb/core/hub.c | 7 +++++++ > > > > 1 file changed, 7 insertions(+) > > > > > > Combined with the previous patch, you are now marking all devices that > > > happen to be attached to a root hub that is on a thunderbolt controller > > > as removable. So all USB devices inside of a docking station are now > > > removable? > > > > With this patch, yes that was my intent. I think what we are debating > > here is should the "removable" attribute imply possibility of removal > > from "the system" or just the "local immediate box" (e.g. thunderbolt > > dock). In my mind, the removable property was analogous to imply an > > "external device", i.e a device that may be removed from the system, > > perhaps as a result of its parent devices being removed from the > > system. I guess this definition doesn't match what you believe it > > should be? > > As I understand it, the "removable" property refers specifically to > the device's upstream link, not to whether _any_ of the links leading > from the device to the computer could be removed.
No, that is not what it means. I'll cite our sysfs ABI:
What: /sys/devices/.../removable Date: May 2021 Contact: Rajat Jain <rajatxjain@gmail.com> Description: Information about whether a given device can be removed from the platform by the user. This is determined by its subsystem in a bus / platform-specific way. This attribute is only present for devices that can support determining such information:
"removable": device can be removed from the platform by the user "fixed": device is fixed to the platform / cannot be removed by the user. "unknown": The information is unavailable / cannot be deduced.
Currently this is only supported by USB (which infers the information from a combination of hub descriptor bits and platform-specific data such as ACPI) and PCI (which gets this from ACPI / device tree).
It specifically talks about _platform_, not about properties of some peripheral attached to a system. Note that the wording is very similar to what we had for USB devices that originally implemented "removable" attribute:
> > This is probably what Oliver meant when he complained about losing > information. With the knowledge of whether each individual link is > removable, you can easily tell whether there's some way to remove a > device from the system. But if you only know whether the device is > removable from the system overall, you generally can't tell whether > the link to the device's parent is removable.
If we need this data then we need to establish some new attribute to convey this info.
Thanks, Dmitry
| |