On 24 August 2016 at 23:04, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: > On Wed, Aug 24, 2016 at 11:29:51AM +0200, Rafał Miłecki wrote: >> On 24 August 2016 at 11:22, Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote: >> > On Wed, Aug 24, 2016 at 12:03:29AM +0200, Rafał Miłecki wrote: >> >> +static ssize_t ports_show(struct device *dev, struct device_attribute *attr, >> >> + char *buf) >> >> +{ >> >> + struct led_classdev *led_cdev = dev_get_drvdata(dev); >> >> + struct usbport_trig_data *usbport_data = led_cdev->trigger_data; >> >> + struct usbport_trig_port *port; >> >> + ssize_t ret = 0; >> >> + int len; >> >> + >> >> + list_for_each_entry(port, &usbport_data->ports, list) { >> >> + len = sprintf(buf + ret, "%s\n", port->name); >> >> + if (len >= 0) >> >> + ret += len; >> >> + } >> >> + >> >> + return ret; >> >> +} >> > >> > sysfs is "one value per file", here you are listing a bunch of things in >> > one sysfs file. Please don't do that. >> >> OK. What do you think about creating "ports" subdirectory and creating >> file-per-port in it? Then I'd need to bring back something like >> "new_port" and "remove_port". Does it sound OK? > > Maybe, I don't know. Why is "USB" somehow unique here? Why isn't this > the same for PCI slots/ports? pccard? sdcard? thunderbolt? Good question. I would like to extend this USB port trigger in the future by reacting to USB activity. This involves playing with URBs and I believe that at that point it'd be getting too much USB specific to /rule them all/. -- Rafał -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html