All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jarkko Sakkinen <jarkko@kernel.org>
To: Chelsy Ratnawat <chelsyratnawat2001@gmail.com>
Cc: peterhuewe@gmx.de, jgg@ziepe.ca, linux-integrity@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] tpm: Replace scnprintf() with sysfs_emit() and sysfs_emit_at() in sysfs show functions
Date: Wed, 25 Jun 2025 02:43:27 +0300	[thread overview]
Message-ID: <aFs4H0gT286-cmvC@kernel.org> (raw)
In-Reply-To: <20250619123707.399022-1-chelsyratnawat2001@gmail.com>

On Thu, Jun 19, 2025 at 05:37:07AM -0700, Chelsy Ratnawat wrote:
> Replace calls to scnprintf() with sysfs_emit() and sysfs_emit_at() in
> sysfs show functions. These helpers are preferred in sysfs callbacks
> because they automatically handle buffer sizing (PAGE_SIZE) and
> improve safety and readability.
> 
> Signed-off-by: Chelsy Ratnawat <chelsyratnawat2001@gmail.com>

Some comments about the commit message.

Don't use "readability" as an argument as it is something that we cannot
measure, and thus useless documentation.

I neither don't understand "PAGE_SIZE" in the parentheses, or how it
"connects" to the sentence. And what do you mean exactly by safety?

Off-topic'ish:

In the Jargon world, safety is actually different than security :-)
Commercial airline planes have great safety (through redundancy)
and not as great (information) security. Just to reflect why
"safety" is neither an argument ...


> ---
>  drivers/char/tpm/tpm_ppi.c | 26 +++++++++++++-------------
>  1 file changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm_ppi.c b/drivers/char/tpm/tpm_ppi.c
> index bc7b1b4501b3..421c6264bac9 100644
> --- a/drivers/char/tpm/tpm_ppi.c
> +++ b/drivers/char/tpm/tpm_ppi.c
> @@ -52,7 +52,7 @@ static ssize_t tpm_show_ppi_version(struct device *dev,
>  {
>  	struct tpm_chip *chip = to_tpm_chip(dev);
>  
> -	return scnprintf(buf, PAGE_SIZE, "%s\n", chip->ppi_version);
> +	return sysfs_emit(buf, "%s\n", chip->ppi_version);
>  }
>  
>  static ssize_t tpm_show_ppi_request(struct device *dev,
> @@ -87,11 +87,11 @@ static ssize_t tpm_show_ppi_request(struct device *dev,
>  		else {
>  			req = obj->package.elements[1].integer.value;
>  			if (tpm_ppi_req_has_parameter(req))
> -				size = scnprintf(buf, PAGE_SIZE,
> +				size = sysfs_emit(buf,
>  				    "%llu %llu\n", req,
>  				    obj->package.elements[2].integer.value);
>  			else
> -				size = scnprintf(buf, PAGE_SIZE,
> +				size = sysfs_emit(buf,
>  						"%llu\n", req);
>  		}
>  	} else if (obj->package.count == 2 &&
> @@ -100,7 +100,7 @@ static ssize_t tpm_show_ppi_request(struct device *dev,
>  		if (obj->package.elements[0].integer.value)
>  			size = -EFAULT;
>  		else
> -			size = scnprintf(buf, PAGE_SIZE, "%llu\n",
> +			size = sysfs_emit(buf, "%llu\n",
>  				 obj->package.elements[1].integer.value);
>  	}
>  
> @@ -211,9 +211,9 @@ static ssize_t tpm_show_ppi_transition_action(struct device *dev,
>  	}
>  
>  	if (ret < ARRAY_SIZE(info) - 1)
> -		status = scnprintf(buf, PAGE_SIZE, "%d: %s\n", ret, info[ret]);
> +		status = sysfs_emit(buf, "%d: %s\n", ret, info[ret]);
>  	else
> -		status = scnprintf(buf, PAGE_SIZE, "%d: %s\n", ret,
> +		status = sysfs_emit(buf, "%d: %s\n", ret,
>  				   info[ARRAY_SIZE(info)-1]);
>  	return status;
>  }
> @@ -255,22 +255,22 @@ static ssize_t tpm_show_ppi_response(struct device *dev,
>  	res = ret_obj[2].integer.value;
>  	if (req) {
>  		if (res == 0)
> -			status = scnprintf(buf, PAGE_SIZE, "%llu %s\n", req,
> +			status = sysfs_emit(buf, "%llu %s\n", req,
>  					   "0: Success");
>  		else if (res == 0xFFFFFFF0)
> -			status = scnprintf(buf, PAGE_SIZE, "%llu %s\n", req,
> +			status = sysfs_emit(buf, "%llu %s\n", req,
>  					   "0xFFFFFFF0: User Abort");
>  		else if (res == 0xFFFFFFF1)
> -			status = scnprintf(buf, PAGE_SIZE, "%llu %s\n", req,
> +			status = sysfs_emit(buf, "%llu %s\n", req,
>  					   "0xFFFFFFF1: BIOS Failure");
>  		else if (res >= 1 && res <= 0x00000FFF)
> -			status = scnprintf(buf, PAGE_SIZE, "%llu %llu: %s\n",
> +			status = sysfs_emit(buf, "%llu %llu: %s\n",
>  					   req, res, "Corresponding TPM error");
>  		else
> -			status = scnprintf(buf, PAGE_SIZE, "%llu %llu: %s\n",
> +			status = sysfs_emit(buf, "%llu %llu: %s\n",
>  					   req, res, "Error");
>  	} else {
> -		status = scnprintf(buf, PAGE_SIZE, "%llu: %s\n",
> +		status = sysfs_emit(buf, "%llu: %s\n",
>  				   req, "No Recent Request");
>  	}
>  
> @@ -314,7 +314,7 @@ static ssize_t show_ppi_operations(acpi_handle dev_handle, char *buf, u32 start,
>  		}
>  
>  		if (ret > 0 && ret < ARRAY_SIZE(info))
> -			str += scnprintf(str, PAGE_SIZE, "%d %d: %s\n",
> +			str += sysfs_emit_at(str, "%d %d: %s\n",
>  					 i, ret, info[ret]);
>  	}
>  
> -- 
> 2.47.1
> 

BR, Jarkko

  parent reply	other threads:[~2025-06-24 23:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-19 12:37 [PATCH] tpm: Replace scnprintf() with sysfs_emit() and sysfs_emit_at() in sysfs show functions Chelsy Ratnawat
2025-06-20 19:52 ` Christophe JAILLET
2025-06-24 23:43 ` Jarkko Sakkinen [this message]
     [not found]   ` <CAOeBcHNpsz5-gapd4pVO5vryENHhFrL18Mkxpe+YLndL3rY=Rw@mail.gmail.com>
2025-06-25 11:29     ` Jarkko Sakkinen

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=aFs4H0gT286-cmvC@kernel.org \
    --to=jarkko@kernel.org \
    --cc=chelsyratnawat2001@gmail.com \
    --cc=jgg@ziepe.ca \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=peterhuewe@gmx.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.