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? thanks, greg k-h -- 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