cpuidle: sysfs: Use sysfs_emit()/sysfs_emit_at() instead of sprintf()/scnprintf()

The ->show() callbacks in sysfs should use sysfs_emit() or
sysfs_emit_at() when formatting values for user space.

These helpers are the recommended way to ensure correct buffer
handling and consistency across the kernel.

See Documentation/filesystems/sysfs.rst for details.

No functional change intended.

Suggested-by: Joe Perches <joe@perches.com>
Signed-off-by: Vivek Yadav <vivekyadav1207731111@gmail.com>
Link: https://patch.msgid.link/20250919165657.233349-1-vivekyadav1207731111@gmail.com
[ rjw: Minor subject edits ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
pull/1354/merge
Vivek Yadav 2025-09-19 22:26:57 +05:30 committed by Rafael J. Wysocki
parent a2d100c47f
commit 8dba0fd9ce
1 changed files with 17 additions and 17 deletions

View File

@ -27,14 +27,14 @@ static ssize_t show_available_governors(struct device *dev,
mutex_lock(&cpuidle_lock); mutex_lock(&cpuidle_lock);
list_for_each_entry(tmp, &cpuidle_governors, governor_list) { list_for_each_entry(tmp, &cpuidle_governors, governor_list) {
if (i >= (ssize_t) (PAGE_SIZE - (CPUIDLE_NAME_LEN + 2))) if (i >= (ssize_t)(PAGE_SIZE - (CPUIDLE_NAME_LEN + 2)))
goto out; goto out;
i += scnprintf(&buf[i], CPUIDLE_NAME_LEN + 1, "%s ", tmp->name); i += sysfs_emit_at(buf, i, "%.*s ", CPUIDLE_NAME_LEN, tmp->name);
} }
out: out:
i+= sprintf(&buf[i], "\n"); i += sysfs_emit_at(buf, i, "\n");
mutex_unlock(&cpuidle_lock); mutex_unlock(&cpuidle_lock);
return i; return i;
} }
@ -49,9 +49,9 @@ static ssize_t show_current_driver(struct device *dev,
spin_lock(&cpuidle_driver_lock); spin_lock(&cpuidle_driver_lock);
drv = cpuidle_get_driver(); drv = cpuidle_get_driver();
if (drv) if (drv)
ret = sprintf(buf, "%s\n", drv->name); ret = sysfs_emit(buf, "%s\n", drv->name);
else else
ret = sprintf(buf, "none\n"); ret = sysfs_emit(buf, "none\n");
spin_unlock(&cpuidle_driver_lock); spin_unlock(&cpuidle_driver_lock);
return ret; return ret;
@ -65,9 +65,9 @@ static ssize_t show_current_governor(struct device *dev,
mutex_lock(&cpuidle_lock); mutex_lock(&cpuidle_lock);
if (cpuidle_curr_governor) if (cpuidle_curr_governor)
ret = sprintf(buf, "%s\n", cpuidle_curr_governor->name); ret = sysfs_emit(buf, "%s\n", cpuidle_curr_governor->name);
else else
ret = sprintf(buf, "none\n"); ret = sysfs_emit(buf, "none\n");
mutex_unlock(&cpuidle_lock); mutex_unlock(&cpuidle_lock);
return ret; return ret;
@ -230,7 +230,7 @@ static struct cpuidle_state_attr attr_##_name = __ATTR(_name, 0644, show, store)
static ssize_t show_state_##_name(struct cpuidle_state *state, \ static ssize_t show_state_##_name(struct cpuidle_state *state, \
struct cpuidle_state_usage *state_usage, char *buf) \ struct cpuidle_state_usage *state_usage, char *buf) \
{ \ { \
return sprintf(buf, "%u\n", state->_name);\ return sysfs_emit(buf, "%u\n", state->_name);\
} }
#define define_show_state_ull_function(_name) \ #define define_show_state_ull_function(_name) \
@ -238,7 +238,7 @@ static ssize_t show_state_##_name(struct cpuidle_state *state, \
struct cpuidle_state_usage *state_usage, \ struct cpuidle_state_usage *state_usage, \
char *buf) \ char *buf) \
{ \ { \
return sprintf(buf, "%llu\n", state_usage->_name);\ return sysfs_emit(buf, "%llu\n", state_usage->_name);\
} }
#define define_show_state_str_function(_name) \ #define define_show_state_str_function(_name) \
@ -247,8 +247,8 @@ static ssize_t show_state_##_name(struct cpuidle_state *state, \
char *buf) \ char *buf) \
{ \ { \
if (state->_name[0] == '\0')\ if (state->_name[0] == '\0')\
return sprintf(buf, "<null>\n");\ return sysfs_emit(buf, "<null>\n");\
return sprintf(buf, "%s\n", state->_name);\ return sysfs_emit(buf, "%s\n", state->_name);\
} }
#define define_show_state_time_function(_name) \ #define define_show_state_time_function(_name) \
@ -256,7 +256,7 @@ static ssize_t show_state_##_name(struct cpuidle_state *state, \
struct cpuidle_state_usage *state_usage, \ struct cpuidle_state_usage *state_usage, \
char *buf) \ char *buf) \
{ \ { \
return sprintf(buf, "%llu\n", ktime_to_us(state->_name##_ns)); \ return sysfs_emit(buf, "%llu\n", ktime_to_us(state->_name##_ns)); \
} }
define_show_state_time_function(exit_latency) define_show_state_time_function(exit_latency)
@ -273,14 +273,14 @@ static ssize_t show_state_time(struct cpuidle_state *state,
struct cpuidle_state_usage *state_usage, struct cpuidle_state_usage *state_usage,
char *buf) char *buf)
{ {
return sprintf(buf, "%llu\n", ktime_to_us(state_usage->time_ns)); return sysfs_emit(buf, "%llu\n", ktime_to_us(state_usage->time_ns));
} }
static ssize_t show_state_disable(struct cpuidle_state *state, static ssize_t show_state_disable(struct cpuidle_state *state,
struct cpuidle_state_usage *state_usage, struct cpuidle_state_usage *state_usage,
char *buf) char *buf)
{ {
return sprintf(buf, "%llu\n", return sysfs_emit(buf, "%llu\n",
state_usage->disable & CPUIDLE_STATE_DISABLED_BY_USER); state_usage->disable & CPUIDLE_STATE_DISABLED_BY_USER);
} }
@ -310,7 +310,7 @@ static ssize_t show_state_default_status(struct cpuidle_state *state,
struct cpuidle_state_usage *state_usage, struct cpuidle_state_usage *state_usage,
char *buf) char *buf)
{ {
return sprintf(buf, "%s\n", return sysfs_emit(buf, "%s\n",
state->flags & CPUIDLE_FLAG_OFF ? "disabled" : "enabled"); state->flags & CPUIDLE_FLAG_OFF ? "disabled" : "enabled");
} }
@ -358,7 +358,7 @@ static ssize_t show_state_s2idle_##_name(struct cpuidle_state *state, \
struct cpuidle_state_usage *state_usage, \ struct cpuidle_state_usage *state_usage, \
char *buf) \ char *buf) \
{ \ { \
return sprintf(buf, "%llu\n", state_usage->s2idle_##_name);\ return sysfs_emit(buf, "%llu\n", state_usage->s2idle_##_name);\
} }
define_show_state_s2idle_ull_function(usage); define_show_state_s2idle_ull_function(usage);
@ -550,7 +550,7 @@ static ssize_t show_driver_name(struct cpuidle_driver *drv, char *buf)
ssize_t ret; ssize_t ret;
spin_lock(&cpuidle_driver_lock); spin_lock(&cpuidle_driver_lock);
ret = sprintf(buf, "%s\n", drv ? drv->name : "none"); ret = sysfs_emit(buf, "%s\n", drv ? drv->name : "none");
spin_unlock(&cpuidle_driver_lock); spin_unlock(&cpuidle_driver_lock);
return ret; return ret;