Re: [PATCH 2/2] usb: hub: Mark devices downstream a removable hub, as removable

From: Alan Stern
Date: Tue Oct 05 2021 - 10:57:00 EST


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@xxxxxxxxxxxxxxxxxxx> 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@xxxxxxxxxx>
> > > ---
> > > 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.

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.

Alan Stern