From: Breno Leitao <leitao@debian.org>
To: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
Jonathan Corbet <corbet@lwn.net>, Shuah Khan <shuah@kernel.org>
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-doc@vger.kernel.org, linux-kselftest@vger.kernel.org,
rdunlap@infradead.org, Breno Leitao <leitao@debian.org>,
kernel-team@meta.com
Subject: [PATCH net-next v5 3/8] netconsole: Helper to count number of used entries
Date: Thu, 06 Feb 2025 03:05:54 -0800 [thread overview]
Message-ID: <20250206-netcon_cpu-v5-3-859b23cc3826@debian.org> (raw)
In-Reply-To: <20250206-netcon_cpu-v5-0-859b23cc3826@debian.org>
Add a helper function nr_extradata_entries() to count the number of used
extradata entries in a netconsole target. This refactors the duplicate
code for counting entries into a single function, which will be reused
by upcoming CPU sysdata changes.
The helper uses list_count_nodes() to count the number of children in
the userdata group configfs hierarchy.
Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Simon Horman <horms@kernel.org>
---
drivers/net/netconsole.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 7f05c7f74c31ce26a7329c784bd99305b7bea0e8..15daaba65c8827bf399f0623cc42d310626cbf68 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -662,6 +662,16 @@ static ssize_t remote_ip_store(struct config_item *item, const char *buf,
return ret;
}
+/* Count number of entries we have in extradata.
+ * This is important because the extradata_complete only supports
+ * MAX_EXTRADATA_ITEMS entries. Before enabling any new {user,sys}data
+ * feature, number of entries needs to checked for available space.
+ */
+static size_t count_extradata_entries(struct netconsole_target *nt)
+{
+ return list_count_nodes(&nt->userdata_group.cg_children);
+}
+
static ssize_t remote_mac_store(struct config_item *item, const char *buf,
size_t count)
{
@@ -811,15 +821,13 @@ static struct config_item *userdatum_make_item(struct config_group *group,
struct netconsole_target *nt;
struct userdatum *udm;
struct userdata *ud;
- size_t child_count;
if (strlen(name) > MAX_EXTRADATA_NAME_LEN)
return ERR_PTR(-ENAMETOOLONG);
ud = to_userdata(&group->cg_item);
nt = userdata_to_target(ud);
- child_count = list_count_nodes(&nt->userdata_group.cg_children);
- if (child_count >= MAX_EXTRADATA_ITEMS)
+ if (count_extradata_entries(nt) >= MAX_EXTRADATA_ITEMS)
return ERR_PTR(-ENOSPC);
udm = kzalloc(sizeof(*udm), GFP_KERNEL);
--
2.43.5
next prev parent reply other threads:[~2025-02-06 11:06 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-06 11:05 [PATCH net-next v5 0/8] netconsole: Add support for CPU population Breno Leitao
2025-02-06 11:05 ` [PATCH net-next v5 1/8] netconsole: consolidate send buffers into netconsole_target struct Breno Leitao
2025-02-06 11:05 ` [PATCH net-next v5 2/8] netconsole: Rename userdata to extradata Breno Leitao
2025-02-06 11:05 ` Breno Leitao [this message]
2025-02-06 11:05 ` [PATCH net-next v5 4/8] netconsole: Introduce configfs helpers for sysdata features Breno Leitao
2025-02-06 11:05 ` [PATCH net-next v5 5/8] netconsole: Include sysdata in extradata entry count Breno Leitao
2025-02-06 11:05 ` [PATCH net-next v5 6/8] netconsole: add support for sysdata and CPU population Breno Leitao
2025-02-06 11:05 ` [PATCH net-next v5 7/8] netconsole: selftest: test for sysdata CPU Breno Leitao
2025-02-06 11:05 ` [PATCH net-next v5 8/8] netconsole: docs: Add documentation for CPU number auto-population Breno Leitao
2025-02-07 1:50 ` Bagas Sanjaya
2025-02-10 11:07 ` Breno Leitao
2025-02-10 23:42 ` Bagas Sanjaya
2025-02-10 15:10 ` [PATCH net-next v5 0/8] netconsole: Add support for CPU population patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250206-netcon_cpu-v5-3-859b23cc3826@debian.org \
--to=leitao@debian.org \
--cc=andrew+netdev@lunn.ch \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kernel-team@meta.com \
--cc=kuba@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rdunlap@infradead.org \
--cc=shuah@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.