printk: move size limit macros into internal.h
authorJohn Ogness <john.ogness@linutronix.de>
Mon, 9 Jan 2023 10:07:53 +0000 (11:13 +0106)
committerPetr Mladek <pmladek@suse.com>
Wed, 11 Jan 2023 14:35:11 +0000 (15:35 +0100)
The size limit macros are located further down in printk.c and
behind ifdef conditionals. This complicates their usage for
upcoming changes. Move the macros into internal.h so that they
are still invisible outside of printk, but easily accessible
for printk.

Also, the maximum size of formatted extended messages does not
need to be known by any code outside of printk, so move it to
internal.h as well. And like CONSOLE_LOG_MAX, for !CONFIG_PRINTK
set CONSOLE_EXT_LOG_MAX to 0 to reduce the static memory
footprint.

Signed-off-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Petr Mladek <pmladek@suse.com>
Signed-off-by: Petr Mladek <pmladek@suse.com>
Link: https://lore.kernel.org/r/20230109100800.1085541-2-john.ogness@linutronix.de
include/linux/printk.h
kernel/printk/internal.h
kernel/printk/printk.c

index 8c81806c2e99f906184269505fcc2a549dd25a28..8ef499ab3c1ed2ec98946c9fd55329f876e47295 100644 (file)
@@ -44,8 +44,6 @@ static inline const char *printk_skip_headers(const char *buffer)
        return buffer;
 }
 
-#define CONSOLE_EXT_LOG_MAX    8192
-
 /* printk's without a loglevel use this.. */
 #define MESSAGE_LOGLEVEL_DEFAULT CONFIG_MESSAGE_LOGLEVEL_DEFAULT
 
index d947ca6c84f997d3e4e657bc2010f0e22367efe2..f394332410c92c9fa8364c6d501c575ea18db397 100644 (file)
@@ -14,6 +14,24 @@ int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write,
 
 #ifdef CONFIG_PRINTK
 
+#ifdef CONFIG_PRINTK_CALLER
+#define PREFIX_MAX             48
+#else
+#define PREFIX_MAX             32
+#endif
+
+/* the maximum size of a formatted record (i.e. with prefix added per line) */
+#define CONSOLE_LOG_MAX                1024
+
+/* the maximum size of a formatted extended record */
+#define CONSOLE_EXT_LOG_MAX    8192
+
+/* the maximum size for a dropped text message */
+#define DROPPED_TEXT_MAX       64
+
+/* the maximum size allowed to be reserved for a record */
+#define LOG_LINE_MAX           (CONSOLE_LOG_MAX - PREFIX_MAX)
+
 /* Flags for a single printk record. */
 enum printk_info_flags {
        LOG_NEWLINE     = 2,    /* text ended with a newline */
@@ -48,6 +66,12 @@ u16 printk_parse_prefix(const char *text, int *level,
                        enum printk_info_flags *flags);
 #else
 
+#define PREFIX_MAX             0
+#define CONSOLE_LOG_MAX                0
+#define CONSOLE_EXT_LOG_MAX    0
+#define DROPPED_TEXT_MAX       0
+#define LOG_LINE_MAX           0
+
 /*
  * In !PRINTK builds we still export console_sem
  * semaphore and some of console functions (console_unlock()/etc.), so
index 7decf1e9c48635c3b151661208108a70c5d63e22..55bb065de65f9967da17bd97b30275f82cc5f09a 100644 (file)
@@ -465,21 +465,6 @@ static struct latched_seq clear_seq = {
        .val[1]         = 0,
 };
 
-#ifdef CONFIG_PRINTK_CALLER
-#define PREFIX_MAX             48
-#else
-#define PREFIX_MAX             32
-#endif
-
-/* the maximum size of a formatted record (i.e. with prefix added per line) */
-#define CONSOLE_LOG_MAX                1024
-
-/* the maximum size for a dropped text message */
-#define DROPPED_TEXT_MAX       64
-
-/* the maximum size allowed to be reserved for a record */
-#define LOG_LINE_MAX           (CONSOLE_LOG_MAX - PREFIX_MAX)
-
 #define LOG_LEVEL(v)           ((v) & 0x07)
 #define LOG_FACILITY(v)                ((v) >> 3 & 0xff)
 
@@ -2387,8 +2372,6 @@ static bool __pr_flush(struct console *con, int timeout_ms, bool reset_on_progre
 
 #else /* CONFIG_PRINTK */
 
-#define CONSOLE_LOG_MAX                0
-#define DROPPED_TEXT_MAX       0
 #define printk_time            false
 
 #define prb_read_valid(rb, seq, r)     false