Move buffer formatting to the start of the function as it
doesn't require to be done under any locks.
No functional change, required by the next patch.

Cc: Steven Rostedt <rost...@goodmis.org>
Cc: LKML <linux-kernel@vger.kernel.org>
Signed-off-by: Hannes Reinecke <h...@suse.de>
---
 kernel/printk/printk.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index 1ce7706..d13675e 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -1633,8 +1633,18 @@ asmlinkage int vprintk_emit(int facility, int level,
        if (level == SCHED_MESSAGE_LOGLEVEL) {
                level = -1;
                in_sched = true;
+
+               /*
+                * The printf needs to come first; we need the syslog
+                * prefix which might be passed-in as a parameter.
+                */
+               text_len = scnprintf(text, sizeof(textbuf),
+                                    KERN_WARNING "[sched_delayed] ");
        }
 
+       text_len += vscnprintf(text + text_len,
+                              sizeof(textbuf) - text_len, fmt, args);
+
        boot_delay_msec(level);
        printk_delay();
 
@@ -1676,17 +1686,6 @@ asmlinkage int vprintk_emit(int facility, int level,
                                         strlen(recursion_msg));
        }
 
-       /*
-        * The printf needs to come first; we need the syslog
-        * prefix which might be passed-in as a parameter.
-        */
-       if (in_sched)
-               text_len = scnprintf(text, sizeof(textbuf),
-                                    KERN_WARNING "[sched_delayed] ");
-
-       text_len += vscnprintf(text + text_len,
-                              sizeof(textbuf) - text_len, fmt, args);
-
        /* mark and strip a trailing newline */
        if (text_len && text[text_len-1] == '\n') {
                text_len--;
-- 
1.8.5.2

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to