On Tue, Feb 25, 2025 at 12:41:50PM +0100, Paolo Abeni wrote:
On 2/21/25 2:52 PM, Breno Leitao wrote:
Add configfs interface to enable/disable the taskname sysdata feature. This adds the following functionality:
The implementation follows the same pattern as the existing CPU number feature, ensuring consistent behavior and error handling across sysdata features.
Signed-off-by: Breno Leitao leitao@debian.org
drivers/net/netconsole.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+)
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 1b109f46512ffb7628c6b34c6efdfc301376dd53..5a29144ae37ee7b487b1a252b0f2ce8574f9cefa 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -426,6 +426,20 @@ static ssize_t sysdata_cpu_nr_enabled_show(struct config_item *item, char *buf) return sysfs_emit(buf, "%d\n", cpu_nr_enabled); } +/* configfs helper to display if taskname sysdata feature is enabled */ +static ssize_t sysdata_taskname_enabled_show(struct config_item *item,
char *buf)
+{
- struct netconsole_target *nt = to_target(item->ci_parent);
- bool taskname_enabled;
- mutex_lock(&dynamic_netconsole_mutex);
- taskname_enabled = !!(nt->sysdata_fields & SYSDATA_TASKNAME);
- mutex_unlock(&dynamic_netconsole_mutex);
- return sysfs_emit(buf, "%d\n", taskname_enabled);
+}
/*
- This one is special -- targets created through the configfs interface
- are not enabled (and the corresponding netpoll activated) by default.
@@ -841,6 +855,40 @@ static void disable_sysdata_feature(struct netconsole_target *nt, nt->extradata_complete[nt->userdata_length] = 0; } +static ssize_t sysdata_taskname_enabled_store(struct config_item *item,
const char *buf, size_t count)
+{
- struct netconsole_target *nt = to_target(item->ci_parent);
- bool taskname_enabled, curr;
- ssize_t ret;
- ret = kstrtobool(buf, &taskname_enabled);
- if (ret)
return ret;
- mutex_lock(&dynamic_netconsole_mutex);
- curr = nt->sysdata_fields & SYSDATA_TASKNAME;
Minor nit: curr = !!(nt->sysdata_fields & SYSDATA_TASKNAME);
would be preferable, and more robust if later on other SYSDATA_ bits are added, 'moving down' SYSDATA_TASKNAME definition.
Also it would be more consistent with previous usage in `sysdata_taskname_enabled_show()`
Good point, in fact. I will update!
Thanks for the review, --breno