Chrome platform driver development
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: Tzung-Bi Shih <tzungbi@kernel.org>
Cc: bleung@chromium.org, groeck@chromium.org,
	chrome-platform@lists.linux.dev
Subject: Re: [PATCH] platform/chrome: use sysfs_emit_at() instead of scnprintf()
Date: Sun, 25 Dec 2022 22:48:50 -0800	[thread overview]
Message-ID: <20221226064850.GA2564528@roeck-us.net> (raw)
In-Reply-To: <20221205061042.1774769-1-tzungbi@kernel.org>

On Mon, Dec 05, 2022 at 02:10:42PM +0800, Tzung-Bi Shih wrote:
> Follow the advice in Documentation/filesystems/sysfs.rst:
> show() should only use sysfs_emit() or sysfs_emit_at() when formatting
> the value to be returned to user space.
> 
> Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>

Reviewed-by: Guenter Roeck <linux@roeck-us.net>

> ---
> Inspired by https://patchwork.kernel.org/project/chrome-platform/patch/202212021656040995199@zte.com.cn/
> 
>  drivers/platform/chrome/cros_ec_sysfs.c | 36 ++++++++++---------------
>  1 file changed, 14 insertions(+), 22 deletions(-)
> 
> diff --git a/drivers/platform/chrome/cros_ec_sysfs.c b/drivers/platform/chrome/cros_ec_sysfs.c
> index e45e57cee3a8..09e3bf5e8ec6 100644
> --- a/drivers/platform/chrome/cros_ec_sysfs.c
> +++ b/drivers/platform/chrome/cros_ec_sysfs.c
> @@ -27,10 +27,9 @@ static ssize_t reboot_show(struct device *dev,
>  {
>  	int count = 0;
>  
> -	count += scnprintf(buf + count, PAGE_SIZE - count,
> -			   "ro|rw|cancel|cold|disable-jump|hibernate|cold-ap-off");
> -	count += scnprintf(buf + count, PAGE_SIZE - count,
> -			   " [at-shutdown]\n");
> +	count += sysfs_emit_at(buf, count,
> +			       "ro|rw|cancel|cold|disable-jump|hibernate|cold-ap-off");
> +	count += sysfs_emit_at(buf, count, " [at-shutdown]\n");
>  	return count;
>  }
>  
> @@ -138,12 +137,9 @@ static ssize_t version_show(struct device *dev,
>  	/* Strings should be null-terminated, but let's be sure. */
>  	r_ver->version_string_ro[sizeof(r_ver->version_string_ro) - 1] = '\0';
>  	r_ver->version_string_rw[sizeof(r_ver->version_string_rw) - 1] = '\0';
> -	count += scnprintf(buf + count, PAGE_SIZE - count,
> -			   "RO version:    %s\n", r_ver->version_string_ro);
> -	count += scnprintf(buf + count, PAGE_SIZE - count,
> -			   "RW version:    %s\n", r_ver->version_string_rw);
> -	count += scnprintf(buf + count, PAGE_SIZE - count,
> -			   "Firmware copy: %s\n",
> +	count += sysfs_emit_at(buf, count, "RO version:    %s\n", r_ver->version_string_ro);
> +	count += sysfs_emit_at(buf, count, "RW version:    %s\n", r_ver->version_string_rw);
> +	count += sysfs_emit_at(buf, count, "Firmware copy: %s\n",
>  			   (r_ver->current_image < ARRAY_SIZE(image_names) ?
>  			    image_names[r_ver->current_image] : "?"));
>  
> @@ -152,13 +148,12 @@ static ssize_t version_show(struct device *dev,
>  	msg->insize = EC_HOST_PARAM_SIZE;
>  	ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
>  	if (ret < 0) {
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> +		count += sysfs_emit_at(buf, count,
>  				   "Build info:    XFER / EC ERROR %d / %d\n",
>  				   ret, msg->result);
>  	} else {
>  		msg->data[EC_HOST_PARAM_SIZE - 1] = '\0';
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> -				   "Build info:    %s\n", msg->data);
> +		count += sysfs_emit_at(buf, count, "Build info:    %s\n", msg->data);
>  	}
>  
>  	/* Get chip info. */
> @@ -166,7 +161,7 @@ static ssize_t version_show(struct device *dev,
>  	msg->insize = sizeof(*r_chip);
>  	ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
>  	if (ret < 0) {
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> +		count += sysfs_emit_at(buf, count,
>  				   "Chip info:     XFER / EC ERROR %d / %d\n",
>  				   ret, msg->result);
>  	} else {
> @@ -175,12 +170,9 @@ static ssize_t version_show(struct device *dev,
>  		r_chip->vendor[sizeof(r_chip->vendor) - 1] = '\0';
>  		r_chip->name[sizeof(r_chip->name) - 1] = '\0';
>  		r_chip->revision[sizeof(r_chip->revision) - 1] = '\0';
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> -				   "Chip vendor:   %s\n", r_chip->vendor);
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> -				   "Chip name:     %s\n", r_chip->name);
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> -				   "Chip revision: %s\n", r_chip->revision);
> +		count += sysfs_emit_at(buf, count, "Chip vendor:   %s\n", r_chip->vendor);
> +		count += sysfs_emit_at(buf, count, "Chip name:     %s\n", r_chip->name);
> +		count += sysfs_emit_at(buf, count, "Chip revision: %s\n", r_chip->revision);
>  	}
>  
>  	/* Get board version */
> @@ -188,13 +180,13 @@ static ssize_t version_show(struct device *dev,
>  	msg->insize = sizeof(*r_board);
>  	ret = cros_ec_cmd_xfer_status(ec->ec_dev, msg);
>  	if (ret < 0) {
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> +		count += sysfs_emit_at(buf, count,
>  				   "Board version: XFER / EC ERROR %d / %d\n",
>  				   ret, msg->result);
>  	} else {
>  		r_board = (struct ec_response_board_version *)msg->data;
>  
> -		count += scnprintf(buf + count, PAGE_SIZE - count,
> +		count += sysfs_emit_at(buf, count,
>  				   "Board version: %d\n",
>  				   r_board->board_version);
>  	}

  parent reply	other threads:[~2022-12-26  6:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-05  6:10 [PATCH] platform/chrome: use sysfs_emit_at() instead of scnprintf() Tzung-Bi Shih
2022-12-26  6:11 ` Tzung-Bi Shih
2022-12-26  6:48 ` Guenter Roeck [this message]
2022-12-26  8:20 ` patchwork-bot+chrome-platform
2022-12-27  5:50 ` patchwork-bot+chrome-platform

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221226064850.GA2564528@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=bleung@chromium.org \
    --cc=chrome-platform@lists.linux.dev \
    --cc=groeck@chromium.org \
    --cc=tzungbi@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox