diff options
| author | Shravan Kumar Ramani <shravankr@nvidia.com> | 2025-07-02 13:09:02 +0300 | 
|---|---|---|
| committer | Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> | 2025-07-07 15:53:28 +0300 | 
| commit | 0e2cebd72321caeef84b6ba7084e85be0287fb4b (patch) | |
| tree | 41f85ea050c1a9099a39e9b6a6f6427eb6f4c3cb | |
| parent | f8c1311769d3b2c82688b294b4ae03e94f1c326d (diff) | |
| download | linux-0e2cebd72321caeef84b6ba7084e85be0287fb4b.tar.xz | |
platform/mellanox: mlxbf-pmc: Use kstrtobool() to check 0/1 input
For setting the enable value, the input should be 0 or 1 only. Use
kstrtobool() in place of kstrtoint() in mlxbf_pmc_enable_store() to
accept only valid input.
Fixes: 423c3361855c ("platform/mellanox: mlxbf-pmc: Add support for BlueField-3")
Signed-off-by: Shravan Kumar Ramani <shravankr@nvidia.com>
Reviewed-by: David Thompson <davthompson@nvidia.com>
Link: https://lore.kernel.org/r/2ee618c59976bcf1379d5ddce2fc60ab5014b3a9.1751380187.git.shravankr@nvidia.com
[ij: split kstrbool() change to own commit.]
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
| -rw-r--r-- | drivers/platform/mellanox/mlxbf-pmc.c | 10 | 
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/platform/mellanox/mlxbf-pmc.c b/drivers/platform/mellanox/mlxbf-pmc.c index c654b4bf141f..4776013e0764 100644 --- a/drivers/platform/mellanox/mlxbf-pmc.c +++ b/drivers/platform/mellanox/mlxbf-pmc.c @@ -1890,13 +1890,14 @@ static ssize_t mlxbf_pmc_enable_store(struct device *dev,  {  	struct mlxbf_pmc_attribute *attr_enable = container_of(  		attr, struct mlxbf_pmc_attribute, dev_attr); -	unsigned int en, blk_num; +	unsigned int blk_num;  	u32 word;  	int err; +	bool en;  	blk_num = attr_enable->nr; -	err = kstrtouint(buf, 0, &en); +	err = kstrtobool(buf, &en);  	if (err < 0)  		return err; @@ -1916,14 +1917,11 @@ static ssize_t mlxbf_pmc_enable_store(struct device *dev,  			MLXBF_PMC_CRSPACE_PERFMON_CTL(pmc->block[blk_num].counters),  			MLXBF_PMC_WRITE_REG_32, word);  	} else { -		if (en && en != 1) -			return -EINVAL; -  		err = mlxbf_pmc_config_l3_counters(blk_num, false, !!en);  		if (err)  			return err; -		if (en == 1) { +		if (en) {  			err = mlxbf_pmc_config_l3_counters(blk_num, true, false);  			if (err)  				return err;  | 
