2022-12-05 09:00:53

by ye.xingchen

[permalink] [raw]
Subject: [PATCH linux-next v3] fbdev: use sysfs_emit() to instead of scnprintf()

From: ye xingchen <[email protected]>

Follow the advice of the Documentation/filesystems/sysfs.rst and show()
should only use sysfs_emit() or sysfs_emit_at() when formatting the
value to be returned to user space.

Signed-off-by: ye xingchen <[email protected]>
---
v2 -> v3
Fix the mistakes in v2.
drivers/video/fbdev/sh_mobile_lcdcfb.c | 8 ++++----
drivers/video/fbdev/uvesafb.c | 10 +++++-----
2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
index 6d00893d41f4..ad9323ed8e2e 100644
--- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
+++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
@@ -1188,7 +1188,7 @@ overlay_alpha_show(struct device *dev, struct device_attribute *attr, char *buf)
struct fb_info *info = dev_get_drvdata(dev);
struct sh_mobile_lcdc_overlay *ovl = info->par;

- return scnprintf(buf, PAGE_SIZE, "%u\n", ovl->alpha);
+ return sysfs_emit(buf, "%u\n", ovl->alpha);
}

static ssize_t
@@ -1226,7 +1226,7 @@ overlay_mode_show(struct device *dev, struct device_attribute *attr, char *buf)
struct fb_info *info = dev_get_drvdata(dev);
struct sh_mobile_lcdc_overlay *ovl = info->par;

- return scnprintf(buf, PAGE_SIZE, "%u\n", ovl->mode);
+ return sysfs_emit(buf, "%u\n", ovl->mode);
}

static ssize_t
@@ -1265,7 +1265,7 @@ overlay_position_show(struct device *dev, struct device_attribute *attr,
struct fb_info *info = dev_get_drvdata(dev);
struct sh_mobile_lcdc_overlay *ovl = info->par;

- return scnprintf(buf, PAGE_SIZE, "%d,%d\n", ovl->pos_x, ovl->pos_y);
+ return sysfs_emit(buf, "%d,%d\n", ovl->pos_x, ovl->pos_y);
}

static ssize_t
@@ -1306,7 +1306,7 @@ overlay_rop3_show(struct device *dev, struct device_attribute *attr, char *buf)
struct fb_info *info = dev_get_drvdata(dev);
struct sh_mobile_lcdc_overlay *ovl = info->par;

- return scnprintf(buf, PAGE_SIZE, "%u\n", ovl->rop3);
+ return sysfs_emit(buf, "%u\n", ovl->rop3);
}

static ssize_t
diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
index 00d789b6c0fa..ba8028a0cc7a 100644
--- a/drivers/video/fbdev/uvesafb.c
+++ b/drivers/video/fbdev/uvesafb.c
@@ -1580,7 +1580,7 @@ static ssize_t uvesafb_show_vendor(struct device *dev,
struct uvesafb_par *par = info->par;

if (par->vbe_ib.oem_vendor_name_ptr)
- return scnprintf(buf, PAGE_SIZE, "%s\n", (char *)
+ return sysfs_emit(buf, "%s\n", (char *)
(&par->vbe_ib) + par->vbe_ib.oem_vendor_name_ptr);
else
return 0;
@@ -1595,7 +1595,7 @@ static ssize_t uvesafb_show_product_name(struct device *dev,
struct uvesafb_par *par = info->par;

if (par->vbe_ib.oem_product_name_ptr)
- return scnprintf(buf, PAGE_SIZE, "%s\n", (char *)
+ return sysfs_emit(buf, "%s\n", (char *)
(&par->vbe_ib) + par->vbe_ib.oem_product_name_ptr);
else
return 0;
@@ -1610,7 +1610,7 @@ static ssize_t uvesafb_show_product_rev(struct device *dev,
struct uvesafb_par *par = info->par;

if (par->vbe_ib.oem_product_rev_ptr)
- return scnprintf(buf, PAGE_SIZE, "%s\n", (char *)
+ return sysfs_emit(buf, "%s\n", (char *)
(&par->vbe_ib) + par->vbe_ib.oem_product_rev_ptr);
else
return 0;
@@ -1625,7 +1625,7 @@ static ssize_t uvesafb_show_oem_string(struct device *dev,
struct uvesafb_par *par = info->par;

if (par->vbe_ib.oem_string_ptr)
- return scnprintf(buf, PAGE_SIZE, "%s\n",
+ return sysfs_emit(buf, "%s\n",
(char *)(&par->vbe_ib) + par->vbe_ib.oem_string_ptr);
else
return 0;
@@ -1639,7 +1639,7 @@ static ssize_t uvesafb_show_nocrtc(struct device *dev,
struct fb_info *info = dev_get_drvdata(dev);
struct uvesafb_par *par = info->par;

- return scnprintf(buf, PAGE_SIZE, "%d\n", par->nocrtc);
+ return sysfs_emit(buf, "%d\n", par->nocrtc);
}

static ssize_t uvesafb_store_nocrtc(struct device *dev,
--
2.25.1


2022-12-05 09:52:43

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH linux-next v3] fbdev: use sysfs_emit() to instead of scnprintf()

Hi Ye,

Thanks for your patch!

On Mon, Dec 5, 2022 at 9:31 AM <[email protected]> wrote:
> From: ye xingchen <[email protected]>
>
> Follow the advice of the Documentation/filesystems/sysfs.rst and show()
> should only use sysfs_emit() or sysfs_emit_at() when formatting the
> value to be returned to user space.
>
> Signed-off-by: ye xingchen <[email protected]>
> ---
> v2 -> v3
> Fix the mistakes in v2.

Indeed, that's usually what a v3 does ;-)
It would help if you listed the actual changes instead.

But "b4 diff [email protected]" doesn't show any?

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

2022-12-10 16:34:11

by Helge Deller

[permalink] [raw]
Subject: Re: [PATCH linux-next v3] fbdev: use sysfs_emit() to instead of scnprintf()

On 12/5/22 09:31, [email protected] wrote:
> From: ye xingchen <[email protected]>
>
> Follow the advice of the Documentation/filesystems/sysfs.rst and show()
> should only use sysfs_emit() or sysfs_emit_at() when formatting the
> value to be returned to user space.
>
> Signed-off-by: ye xingchen <[email protected]>

I've applied this patch, but split it up into two (one for each driver).
Please, send seperate patches per driver next time (and add proper changelog
if you do a v2/v3 version).

Thanks!
Helge


> ---
> v2 -> v3
> Fix the mistakes in v2.
> drivers/video/fbdev/sh_mobile_lcdcfb.c | 8 ++++----
> drivers/video/fbdev/uvesafb.c | 10 +++++-----
> 2 files changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> index 6d00893d41f4..ad9323ed8e2e 100644
> --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
> +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
> @@ -1188,7 +1188,7 @@ overlay_alpha_show(struct device *dev, struct device_attribute *attr, char *buf)
> struct fb_info *info = dev_get_drvdata(dev);
> struct sh_mobile_lcdc_overlay *ovl = info->par;
>
> - return scnprintf(buf, PAGE_SIZE, "%u\n", ovl->alpha);
> + return sysfs_emit(buf, "%u\n", ovl->alpha);
> }
>
> static ssize_t
> @@ -1226,7 +1226,7 @@ overlay_mode_show(struct device *dev, struct device_attribute *attr, char *buf)
> struct fb_info *info = dev_get_drvdata(dev);
> struct sh_mobile_lcdc_overlay *ovl = info->par;
>
> - return scnprintf(buf, PAGE_SIZE, "%u\n", ovl->mode);
> + return sysfs_emit(buf, "%u\n", ovl->mode);
> }
>
> static ssize_t
> @@ -1265,7 +1265,7 @@ overlay_position_show(struct device *dev, struct device_attribute *attr,
> struct fb_info *info = dev_get_drvdata(dev);
> struct sh_mobile_lcdc_overlay *ovl = info->par;
>
> - return scnprintf(buf, PAGE_SIZE, "%d,%d\n", ovl->pos_x, ovl->pos_y);
> + return sysfs_emit(buf, "%d,%d\n", ovl->pos_x, ovl->pos_y);
> }
>
> static ssize_t
> @@ -1306,7 +1306,7 @@ overlay_rop3_show(struct device *dev, struct device_attribute *attr, char *buf)
> struct fb_info *info = dev_get_drvdata(dev);
> struct sh_mobile_lcdc_overlay *ovl = info->par;
>
> - return scnprintf(buf, PAGE_SIZE, "%u\n", ovl->rop3);
> + return sysfs_emit(buf, "%u\n", ovl->rop3);
> }
>
> static ssize_t
> diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
> index 00d789b6c0fa..ba8028a0cc7a 100644
> --- a/drivers/video/fbdev/uvesafb.c
> +++ b/drivers/video/fbdev/uvesafb.c
> @@ -1580,7 +1580,7 @@ static ssize_t uvesafb_show_vendor(struct device *dev,
> struct uvesafb_par *par = info->par;
>
> if (par->vbe_ib.oem_vendor_name_ptr)
> - return scnprintf(buf, PAGE_SIZE, "%s\n", (char *)
> + return sysfs_emit(buf, "%s\n", (char *)
> (&par->vbe_ib) + par->vbe_ib.oem_vendor_name_ptr);
> else
> return 0;
> @@ -1595,7 +1595,7 @@ static ssize_t uvesafb_show_product_name(struct device *dev,
> struct uvesafb_par *par = info->par;
>
> if (par->vbe_ib.oem_product_name_ptr)
> - return scnprintf(buf, PAGE_SIZE, "%s\n", (char *)
> + return sysfs_emit(buf, "%s\n", (char *)
> (&par->vbe_ib) + par->vbe_ib.oem_product_name_ptr);
> else
> return 0;
> @@ -1610,7 +1610,7 @@ static ssize_t uvesafb_show_product_rev(struct device *dev,
> struct uvesafb_par *par = info->par;
>
> if (par->vbe_ib.oem_product_rev_ptr)
> - return scnprintf(buf, PAGE_SIZE, "%s\n", (char *)
> + return sysfs_emit(buf, "%s\n", (char *)
> (&par->vbe_ib) + par->vbe_ib.oem_product_rev_ptr);
> else
> return 0;
> @@ -1625,7 +1625,7 @@ static ssize_t uvesafb_show_oem_string(struct device *dev,
> struct uvesafb_par *par = info->par;
>
> if (par->vbe_ib.oem_string_ptr)
> - return scnprintf(buf, PAGE_SIZE, "%s\n",
> + return sysfs_emit(buf, "%s\n",
> (char *)(&par->vbe_ib) + par->vbe_ib.oem_string_ptr);
> else
> return 0;
> @@ -1639,7 +1639,7 @@ static ssize_t uvesafb_show_nocrtc(struct device *dev,
> struct fb_info *info = dev_get_drvdata(dev);
> struct uvesafb_par *par = info->par;
>
> - return scnprintf(buf, PAGE_SIZE, "%d\n", par->nocrtc);
> + return sysfs_emit(buf, "%d\n", par->nocrtc);
> }
>
> static ssize_t uvesafb_store_nocrtc(struct device *dev,