On Tue, Oct 5, 2021 at 4:19 AM Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > > On Wed, Sep 29, 2021 at 03:48:22PM -0700, Rajat Jain wrote: > > Currently all usb root hubs are always marked as DEVICE_REMOVABLE_UNKNOWN > > unconditionally. Let us try to help the users to identify the removable > > root hubs, by checking the device on which the root hub sits. If the base > > (parent) device on which the root hub sits, is removable (e.g. on > > thunderbolt docks), then the roothub is also marked as removable. > > > > Signed-off-by: Rajat Jain <rajatja@xxxxxxxxxx> > > --- > > drivers/usb/core/hub.c | 10 +++++++++- > > 1 file changed, 9 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > > index 86658a81d284..45d1c81b121d 100644 > > --- a/drivers/usb/core/hub.c > > +++ b/drivers/usb/core/hub.c > > @@ -2440,8 +2440,16 @@ static void set_usb_port_removable(struct usb_device *udev) > > > > dev_set_removable(&udev->dev, DEVICE_REMOVABLE_UNKNOWN); > > > > - if (!hdev) > > + if (!hdev) { > > + /* > > + * If the root hub sits on a removable device, mark the root hub > > + * removable as well. This helps with the USB root hubs sitting > > + * on the thunderbolt docks. > > + */ > > + if (udev->dev.parent && dev_is_removable(udev->dev.parent)) > > How can a roothub device not have a parent? It was a sanity check. I can remove that if we know that it can never happen. > > I still don't know about this. What userspace tool is going to do > anything with this information? What is broken today that this fixes? With these 2 patches, Chromeos intends to collect statistics about external USB device usage in the system. The tool will be an internal chrome os statistics collection tool. Today, any thunderbolt docks and its devices appear as "unknown". There is also a VM case that is helped by these patches, but I think Dmitry on Benson on this thread can elaborate more about that. Thanks & Best Regards, Rajat > > thanks, > > greg k-h