Re: [PATCH] scsi: ufs: sysfs: add is_ascii_output entry

Greg KH
2021-02-14T09:54:46Z

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