On Thu, Jan 2, 2020 at 10:14 PM Bart Van Assche <bvanassche@xxxxxxx> wrote: > > On 12/30/19 2:29 AM, Jack Wang wrote: > > +static struct kobj_type ktype = { > > + .sysfs_ops = &kobj_sysfs_ops, > > +}; > > Can this data structure be declared 'const'? No, kobject_init_and_add expect sturct kobj_type *. > > > +static ssize_t max_reconnect_attempts_show(struct device *dev, > > + struct device_attribute *attr, > > + char *page) > > +{ > > + struct rtrs_clt *clt; > > + > > + clt = container_of(dev, struct rtrs_clt, dev); > > If the above two statements would be combined into a single statement, > does the result still fit in 80 columns? If so, please combine these two > statements into a single statement. ok. > > > +static ssize_t max_reconnect_attempts_store(struct device *dev, > > + struct device_attribute *attr, > > + const char *buf, > > + size_t count) > > +{ > > + struct rtrs_clt *clt; > > + int value; > > + int ret; > > + > > + clt = container_of(dev, struct rtrs_clt, dev); > > Same comment here and also for other uses of 'clt': how about combining > the declaration and initialization of 'clt' into a single line of code? ok. > > > +static ssize_t mpath_policy_show(struct device *dev, > > + struct device_attribute *attr, > > + char *page) > > +{ > > + struct rtrs_clt *clt; > > + > > + clt = container_of(dev, struct rtrs_clt, dev); > > + > > + switch (clt->mp_policy) { > > + case MP_POLICY_RR: > > + return sprintf(page, "round-robin (RR: %d)\n", clt->mp_policy); > > + case MP_POLICY_MIN_INFLIGHT: > > + return sprintf(page, "min-inflight (MI: %d)\n", clt->mp_policy); > > + default: > > + return sprintf(page, "Unknown (%d)\n", clt->mp_policy); > > + } > > +} > > Is the above show function compatible with the sysfs one-value-per-file > rule? It's a single string :) > > > +static struct kobj_attribute rtrs_clt_remove_path_attr = > > + __ATTR(remove_path, 0644, rtrs_clt_remove_path_show, > > + rtrs_clt_remove_path_store); > > Could __ATTR_RW() have been used here? can be used, but I prefer to keep the rtrs_clt_ prefix for function names. > > > +static struct kobj_attribute rtrs_clt_src_addr_attr = > > + __ATTR(src_addr, 0444, rtrs_clt_src_addr_show, NULL); > > Could __ATTR_RO() have been used here? dito. > > > +static struct attribute_group rtrs_clt_sess_attr_group = { > > + .attrs = rtrs_clt_sess_attrs, > > +}; > > Can this data structure be declared 'const'? Yes. > > Thanks, > > Bart. Thanks