On Wed, Feb 10, 2021 at 07:35:25PM -0800, Bart Van Assche wrote:
> On 2/10/21 2:53 AM, Arthur Simchaev wrote:
> > +static bool is_ascii_output = true;
> 
> [ ... ]
> 
> >  static const char *ufschd_uic_link_state_to_string(
> >                     enum uic_link_state state)
> >  {
> > @@ -693,7 +695,15 @@ static ssize_t _name##_show(struct device *dev,        
> >                         \
> >                                   SD_ASCII_STD);                    \
> >     if (ret < 0)                                                    \
> >             goto out;                                               \
> > -   ret = sysfs_emit(buf, "%s\n", desc_buf);                        \
> > +   if (is_ascii_output) {                                          \
> > +           ret = sysfs_emit(buf, "%s\n", desc_buf);                \
> > +   } else {                                                        \
> > +           int i;                                                  \
> > +                                                                   \
> > +           for (i = 0; i < desc_buf[0]; i++)                       \
> > +                   hex_byte_pack(buf + i * 2, desc_buf[i]);        \
> > +           ret = sysfs_emit(buf, "%s\n", buf);                     \
> > +   }                                                               \
> >  out:                                                                       
> > \
> >     pm_runtime_put_sync(hba->dev);                                  \
> >     kfree(desc_buf);                                                \
> 
> Please do not introduce a mode variable but instead introduce a new
> attribute such that there is one attribute for the unicode output and
> one attribute for the ASCII output. Mode variables are troublesome when
> e.g. two scripts try to set the mode attribute concurrently.

Agreed, just make a new sysfs file, please never change the output of an
existing sysfs file, that way will guarantee confusion in userspace.

thanks,

greg k-h

Reply via email to