lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:   Mon, 5 Dec 2022 23:24:05 +0100
From:   Sebastian Reichel <sebastian.reichel@...labora.com>
To:     ye.xingchen@....com.cn
Cc:     linus.walleij@...aro.org, krzysztof.kozlowski@...aro.org,
        linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH linux-next] power: supply: use sysfs_emit() to instead of
 scnprintf()

Hi,

On Mon, Dec 05, 2022 at 11:07:58AM +0800, ye.xingchen@....com.cn wrote:
> From: ye xingchen <ye.xingchen@....com.cn>
> 
> 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 <ye.xingchen@....com.cn>
> ---

Looks sensible. But the merge window will open soon, so this will
have to wait. It would be nice if you can prepare a v2, which
includes

 * Moving remaining scnprintf to sysfs_emit_at in
   drivers/power/supply/twl4030_charger.c
 * Updateing usage of sprintf based sysfs show()
   routines in addition to the scnprintf ones

Thanks,

-- Sebastian

>  drivers/power/supply/ab8500_fg.c        | 18 +++++++++---------
>  drivers/power/supply/bq24190_charger.c  |  2 +-
>  drivers/power/supply/bq24257_charger.c  |  8 +++-----
>  drivers/power/supply/lp8788-charger.c   |  7 +++----
>  drivers/power/supply/max14577_charger.c |  2 +-
>  drivers/power/supply/max77693_charger.c |  6 +++---
>  6 files changed, 20 insertions(+), 23 deletions(-)
> 
> diff --git a/drivers/power/supply/ab8500_fg.c b/drivers/power/supply/ab8500_fg.c
> index c6c9804280db..d989eadaa933 100644
> --- a/drivers/power/supply/ab8500_fg.c
> +++ b/drivers/power/supply/ab8500_fg.c
> @@ -2594,7 +2594,7 @@ static ssize_t ab8505_powercut_flagtime_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", (reg_value & 0x7F));
> +	return sysfs_emit(buf, "%d\n", (reg_value & 0x7F));
> 
>  fail:
>  	return ret;
> @@ -2644,7 +2644,7 @@ static ssize_t ab8505_powercut_maxtime_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", (reg_value & 0x7F));
> +	return sysfs_emit(buf, "%d\n", (reg_value & 0x7F));
> 
>  fail:
>  	return ret;
> @@ -2695,7 +2695,7 @@ static ssize_t ab8505_powercut_restart_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", (reg_value & 0xF));
> +	return sysfs_emit(buf, "%d\n", (reg_value & 0xF));
> 
>  fail:
>  	return ret;
> @@ -2746,7 +2746,7 @@ static ssize_t ab8505_powercut_timer_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", (reg_value & 0x7F));
> +	return sysfs_emit(buf, "%d\n", (reg_value & 0x7F));
> 
>  fail:
>  	return ret;
> @@ -2769,7 +2769,7 @@ static ssize_t ab8505_powercut_restart_counter_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", (reg_value & 0xF0) >> 4);
> +	return sysfs_emit(buf, "%d\n", (reg_value & 0xF0) >> 4);
> 
>  fail:
>  	return ret;
> @@ -2790,7 +2790,7 @@ static ssize_t ab8505_powercut_read(struct device *dev,
>  	if (ret < 0)
>  		goto fail;
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", (reg_value & 0x1));
> +	return sysfs_emit(buf, "%d\n", (reg_value & 0x1));
> 
>  fail:
>  	return ret;
> @@ -2841,7 +2841,7 @@ static ssize_t ab8505_powercut_flag_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", ((reg_value & 0x10) >> 4));
> +	return sysfs_emit(buf, "%d\n", ((reg_value & 0x10) >> 4));
> 
>  fail:
>  	return ret;
> @@ -2864,7 +2864,7 @@ static ssize_t ab8505_powercut_debounce_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", (reg_value & 0x7));
> +	return sysfs_emit(buf, "%d\n", (reg_value & 0x7));
> 
>  fail:
>  	return ret;
> @@ -2914,7 +2914,7 @@ static ssize_t ab8505_powercut_enable_status_read(struct device *dev,
>  		goto fail;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", ((reg_value & 0x20) >> 5));
> +	return sysfs_emit(buf, "%d\n", ((reg_value & 0x20) >> 5));
> 
>  fail:
>  	return ret;
> diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c
> index 2b2c3a4391c1..be34b9848450 100644
> --- a/drivers/power/supply/bq24190_charger.c
> +++ b/drivers/power/supply/bq24190_charger.c
> @@ -463,7 +463,7 @@ static ssize_t bq24190_sysfs_show(struct device *dev,
>  	if (ret)
>  		count = ret;
>  	else
> -		count = scnprintf(buf, PAGE_SIZE, "%hhx\n", v);
> +		count = sysfs_emit(buf, "%hhx\n", v);
> 
>  	pm_runtime_mark_last_busy(bdi->dev);
>  	pm_runtime_put_autosuspend(bdi->dev);
> diff --git a/drivers/power/supply/bq24257_charger.c b/drivers/power/supply/bq24257_charger.c
> index ab4c49788c58..103ddc2b3def 100644
> --- a/drivers/power/supply/bq24257_charger.c
> +++ b/drivers/power/supply/bq24257_charger.c
> @@ -767,8 +767,7 @@ static ssize_t bq24257_show_ovp_voltage(struct device *dev,
>  	struct power_supply *psy = dev_get_drvdata(dev);
>  	struct bq24257_device *bq = power_supply_get_drvdata(psy);
> 
> -	return scnprintf(buf, PAGE_SIZE, "%u\n",
> -			 bq24257_vovp_map[bq->init_data.vovp]);
> +	return sysfs_emit(buf, "%u\n", bq24257_vovp_map[bq->init_data.vovp]);
>  }
> 
>  static ssize_t bq24257_show_in_dpm_voltage(struct device *dev,
> @@ -778,8 +777,7 @@ static ssize_t bq24257_show_in_dpm_voltage(struct device *dev,
>  	struct power_supply *psy = dev_get_drvdata(dev);
>  	struct bq24257_device *bq = power_supply_get_drvdata(psy);
> 
> -	return scnprintf(buf, PAGE_SIZE, "%u\n",
> -			 bq24257_vindpm_map[bq->init_data.vindpm]);
> +	return sysfs_emit(buf, "%u\n", bq24257_vindpm_map[bq->init_data.vindpm]);
>  }
> 
>  static ssize_t bq24257_sysfs_show_enable(struct device *dev,
> @@ -800,7 +798,7 @@ static ssize_t bq24257_sysfs_show_enable(struct device *dev,
>  	if (ret < 0)
>  		return ret;
> 
> -	return scnprintf(buf, PAGE_SIZE, "%d\n", ret);
> +	return sysfs_emit(buf, "%d\n", ret);
>  }
> 
>  static ssize_t bq24257_sysfs_set_enable(struct device *dev,
> diff --git a/drivers/power/supply/lp8788-charger.c b/drivers/power/supply/lp8788-charger.c
> index f5f47a0aa1e3..755b6a4379b8 100644
> --- a/drivers/power/supply/lp8788-charger.c
> +++ b/drivers/power/supply/lp8788-charger.c
> @@ -602,7 +602,7 @@ static ssize_t lp8788_show_charger_status(struct device *dev,
>  	lp8788_read_byte(pchg->lp, LP8788_CHG_STATUS, &data);
>  	state = (data & LP8788_CHG_STATE_M) >> LP8788_CHG_STATE_S;
> 
> -	return scnprintf(buf, PAGE_SIZE, "%s\n", desc[state]);
> +	return sysfs_emit(buf, "%s\n", desc[state]);
>  }
> 
>  static ssize_t lp8788_show_eoc_time(struct device *dev,
> @@ -618,8 +618,7 @@ static ssize_t lp8788_show_eoc_time(struct device *dev,
>  	lp8788_read_byte(pchg->lp, LP8788_CHG_EOC, &val);
>  	val = (val & LP8788_CHG_EOC_TIME_M) >> LP8788_CHG_EOC_TIME_S;
> 
> -	return scnprintf(buf, PAGE_SIZE, "End Of Charge Time: %s\n",
> -			stime[val]);
> +	return sysfs_emit(buf, "End Of Charge Time: %s\n", stime[val]);
>  }
> 
>  static ssize_t lp8788_show_eoc_level(struct device *dev,
> @@ -642,7 +641,7 @@ static ssize_t lp8788_show_eoc_level(struct device *dev,
>  	val = (val & LP8788_CHG_EOC_LEVEL_M) >> LP8788_CHG_EOC_LEVEL_S;
>  	level = mode ? abs_level[val] : relative_level[val];
> 
> -	return scnprintf(buf, PAGE_SIZE, "End Of Charge Level: %s\n", level);
> +	return sysfs_emit(buf, "End Of Charge Level: %s\n", level);
>  }
> 
>  static DEVICE_ATTR(charger_status, S_IRUSR, lp8788_show_charger_status, NULL);
> diff --git a/drivers/power/supply/max14577_charger.c b/drivers/power/supply/max14577_charger.c
> index f244cd902eb9..96f9de775043 100644
> --- a/drivers/power/supply/max14577_charger.c
> +++ b/drivers/power/supply/max14577_charger.c
> @@ -532,7 +532,7 @@ static ssize_t show_fast_charge_timer(struct device *dev,
>  		break;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%u\n", val);
> +	return sysfs_emit(buf, "%u\n", val);
>  }
> 
>  static ssize_t store_fast_charge_timer(struct device *dev,
> diff --git a/drivers/power/supply/max77693_charger.c b/drivers/power/supply/max77693_charger.c
> index a2c5c9858639..794c8c054450 100644
> --- a/drivers/power/supply/max77693_charger.c
> +++ b/drivers/power/supply/max77693_charger.c
> @@ -296,7 +296,7 @@ static ssize_t fast_charge_timer_show(struct device *dev,
>  		break;
>  	}
> 
> -	return scnprintf(buf, PAGE_SIZE, "%u\n", val);
> +	return sysfs_emit(buf, "%u\n", val);
>  }
> 
>  static int max77693_set_fast_charge_timer(struct max77693_charger *chg,
> @@ -357,7 +357,7 @@ static ssize_t top_off_threshold_current_show(struct device *dev,
>  	else
>  		val = data * 50000;
> 
> -	return scnprintf(buf, PAGE_SIZE, "%u\n", val);
> +	return sysfs_emit(buf, "%u\n", val);
>  }
> 
>  static int max77693_set_top_off_threshold_current(struct max77693_charger *chg,
> @@ -405,7 +405,7 @@ static ssize_t top_off_timer_show(struct device *dev,
> 
>  	val = data * 10;
> 
> -	return scnprintf(buf, PAGE_SIZE, "%u\n", val);
> +	return sysfs_emit(buf, "%u\n", val);
>  }
> 
>  static int max77693_set_top_off_timer(struct max77693_charger *chg,
> -- 
> 2.25.1

Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ