summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBreno Leitao <leitao@debian.org>2026-02-06 04:45:30 -0800
committerJakub Kicinski <kuba@kernel.org>2026-02-10 19:51:56 -0800
commiteaf35bc63be79bfd1c37e82bea4af7adc162455f (patch)
tree12e3075861cda4f64178309aa94c5a1020724e5b /drivers
parent60325c27d3cfe13466f6d6aa882b11bdd1c58cc8 (diff)
netconsole: extract message fragmentation into send_msg_udp()
Extract the message fragmentation logic from write_msg() into a dedicated send_msg_udp() function. This improves code readability and prepares for future enhancements. The new send_msg_udp() function handles splitting messages that exceed MAX_PRINT_CHUNK into smaller fragments and sending them sequentially. This function is placed before send_ext_msg_udp() to maintain a logical ordering of related functions. No functional changes - this is purely a refactoring commit. Reviewed-by: Petr Mladek <pmladek@suse.com> Reviewed-by: Simon Horman <horms@kernel.org> Reviewed-by: John Ogness <john.ogness@linutronix.de> Signed-off-by: Breno Leitao <leitao@debian.org> Link: https://patch.msgid.link/20260206-nbcon-v7-2-62bda69b1b41@debian.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/netconsole.c24
1 files changed, 15 insertions, 9 deletions
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 82c232f9ede2..e37250bf495f 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -1876,12 +1876,24 @@ static void write_ext_msg(struct console *con, const char *msg,
spin_unlock_irqrestore(&target_list_lock, flags);
}
+static void send_msg_udp(struct netconsole_target *nt, const char *msg,
+ unsigned int len)
+{
+ const char *tmp = msg;
+ int frag, left = len;
+
+ while (left > 0) {
+ frag = min(left, MAX_PRINT_CHUNK);
+ send_udp(nt, tmp, frag);
+ tmp += frag;
+ left -= frag;
+ }
+}
+
static void write_msg(struct console *con, const char *msg, unsigned int len)
{
- int frag, left;
unsigned long flags;
struct netconsole_target *nt;
- const char *tmp;
if (oops_only && !oops_in_progress)
return;
@@ -1899,13 +1911,7 @@ static void write_msg(struct console *con, const char *msg, unsigned int len)
* at least one target if we die inside here, instead
* of unnecessarily keeping all targets in lock-step.
*/
- tmp = msg;
- for (left = len; left;) {
- frag = min(left, MAX_PRINT_CHUNK);
- send_udp(nt, tmp, frag);
- tmp += frag;
- left -= frag;
- }
+ send_msg_udp(nt, msg, len);
}
}
spin_unlock_irqrestore(&target_list_lock, flags);