]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
netconsole: extract message fragmentation into send_msg_udp()
authorBreno Leitao <leitao@debian.org>
Fri, 6 Feb 2026 12:45:30 +0000 (04:45 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 Feb 2026 03:51:56 +0000 (19:51 -0800)
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>
drivers/net/netconsole.c

index 82c232f9ede242c709a13d2aaea4232a84c457db..e37250bf495fac9da7611820452153f81dd3b00b 100644 (file)
@@ -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);