@@ -929,8 +929,11 @@ static umode_t dev_bin_attrs_are_visible(struct kobject *kobj,
struct device *dev = kobj_to_dev(kobj);
struct usb_device *udev = to_usb_device(dev);
- /* All USB devices have a device descriptor, so the descriptors
- * attribute always exists. No need to check for its visibility.
+ /*
+ * There's no need to check if the descriptors attribute should
+ * be visible because all devices have a device descriptor. The
+ * bos_descriptors attribute should be visible if and only if
+ * the device has a BOS, so check if it exists here.
*/
if (a == &bin_attr_bos_descriptors) {
if (udev->bos == NULL)
The commit "usb: Export BOS descriptor to sysfs" added a binary attribute group to sysfs. It doesn't check if the descriptors attribute should be visible, which is by design and not an oversight. Update a comment so that it better explains this in the dev_bin_attrs_are_visible() function. Signed-off-by: Elbert Mai <code@elbertmai.com> --- I had mistakenly written the entry as if it went into stable/sysfs-bus-usb instead of testing/sysfs-bus-usb, so the "..." shouldn't be there. I see you have already moved and corrected the bos_descriptors documentation, so it should be all OK now. drivers/usb/core/sysfs.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)