[v2] staging: fieldbus: replace snprintf in show functions with sysfs_emit

Message ID Y2tBJFSsyUzdb+eO@qemulion
State New
Headers
Series [v2] staging: fieldbus: replace snprintf in show functions with sysfs_emit |

Commit Message

Deepak R Varma Nov. 9, 2022, 5:56 a.m. UTC
  The show() methods should only use sysfs_emit() when formatting values
to be returned to the user space.
Ref: Documentation/filesystems/sysfs.rst
Issue identified by coccicheck.

Signed-off-by: Deepak R Varma <drv@mailo.com>
---

Changes in v2:
   1. Switch to using sysfs_emit instead of scnprintf
   2. Update patch subject and log accordingly
      Feedback from gregkh@linuxfoundation.org


 drivers/staging/fieldbus/dev_core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--
2.34.1
  

Comments

Greg KH Nov. 9, 2022, 7:30 a.m. UTC | #1
On Wed, Nov 09, 2022 at 11:26:52AM +0530, Deepak R Varma wrote:
> The show() methods should only use sysfs_emit() when formatting values
> to be returned to the user space.
> Ref: Documentation/filesystems/sysfs.rst
> Issue identified by coccicheck.
> 
> Signed-off-by: Deepak R Varma <drv@mailo.com>
> ---
> 
> Changes in v2:
>    1. Switch to using sysfs_emit instead of scnprintf
>    2. Update patch subject and log accordingly
>       Feedback from gregkh@linuxfoundation.org
> 
> 
>  drivers/staging/fieldbus/dev_core.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/fieldbus/dev_core.c b/drivers/staging/fieldbus/dev_core.c
> index 5aab734606ea..d32599f4eb44 100644
> --- a/drivers/staging/fieldbus/dev_core.c
> +++ b/drivers/staging/fieldbus/dev_core.c
> @@ -67,10 +67,10 @@ static ssize_t card_name_show(struct device *dev, struct device_attribute *attr,
>  	struct fieldbus_dev *fb = dev_get_drvdata(dev);
> 
>  	/*
> -	 * card_name was provided by child driver, could potentially be long.
> -	 * protect against buffer overrun.
> +	 * sysfs provides PAGE_SIZE long buffer to take care of potentially

No need to ever mention PAGE_SIZE at all, this comment should just be:
	/* card_name was provided by child driver */

But the larger question is, why did you only convert one of the sysfs
show functions in this file?  Why not do them all?

thanks,

greg k-h
  
Deepak R Varma Nov. 9, 2022, 7:46 a.m. UTC | #2
On Wed, Nov 09, 2022 at 08:30:26AM +0100, Greg Kroah-Hartman wrote:
> On Wed, Nov 09, 2022 at 11:26:52AM +0530, Deepak R Varma wrote:
> > The show() methods should only use sysfs_emit() when formatting values
> > to be returned to the user space.
> > Ref: Documentation/filesystems/sysfs.rst
> > Issue identified by coccicheck.
> >
> > Signed-off-by: Deepak R Varma <drv@mailo.com>
> >  	/*
> > -	 * card_name was provided by child driver, could potentially be long.
> > -	 * protect against buffer overrun.
> > +	 * sysfs provides PAGE_SIZE long buffer to take care of potentially
>
> No need to ever mention PAGE_SIZE at all, this comment should just be:
> 	/* card_name was provided by child driver */

Sure. I will update the comment in the revision.

>
> But the larger question is, why did you only convert one of the sysfs
> show functions in this file?  Why not do them all?

I was limiting it to what is reported by coccicheck. I will review other such
show functions and send a consolidated patch.

Thank you,
./drv

>
> thanks,
>
> greg k-h
>
  

Patch

diff --git a/drivers/staging/fieldbus/dev_core.c b/drivers/staging/fieldbus/dev_core.c
index 5aab734606ea..d32599f4eb44 100644
--- a/drivers/staging/fieldbus/dev_core.c
+++ b/drivers/staging/fieldbus/dev_core.c
@@ -67,10 +67,10 @@  static ssize_t card_name_show(struct device *dev, struct device_attribute *attr,
 	struct fieldbus_dev *fb = dev_get_drvdata(dev);

 	/*
-	 * card_name was provided by child driver, could potentially be long.
-	 * protect against buffer overrun.
+	 * sysfs provides PAGE_SIZE long buffer to take care of potentially
+	 * long card_name provided by child driver.
 	 */
-	return snprintf(buf, PAGE_SIZE, "%s\n", fb->card_name);
+	return sysfs_emit(buf, "%s\n", fb->card_name);
 }
 static DEVICE_ATTR_RO(card_name);