[Devel] [PATCH VZ10 2/5] ve/printk: Add ve_vprintk_emit() helper

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Tue Oct 7 11:50:26 MSK 2025


Will need this to emit ve messages with specified log level and device
info.

While on it, let's replace narrow __vprintk() helper with wider
ve_vprintk_emit().

https://virtuozzo.atlassian.net/browse/VSTOR-106826
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
---
 include/linux/printk.h |  4 ++++
 kernel/printk/printk.c | 12 ++++++++----
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/include/linux/printk.h b/include/linux/printk.h
index 05a8e361f3c01..d74ad6f389870 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -155,6 +155,10 @@ asmlinkage __printf(4, 0)
 int vprintk_emit(int facility, int level,
 		 const struct dev_printk_info *dev_info,
 		 const char *fmt, va_list args);
+asmlinkage __printf(4, 0)
+int ve_vprintk_emit(int facility, int level,
+		    const struct dev_printk_info *dev_info,
+		    const char *fmt, va_list args);
 
 asmlinkage __printf(1, 0)
 int vprintk(const char *fmt, va_list args);
diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
index b4c6b1f99eff0..f8e32b5fad0d7 100644
--- a/kernel/printk/printk.c
+++ b/kernel/printk/printk.c
@@ -2510,11 +2510,15 @@ asmlinkage int vprintk_emit(int facility, int level,
 }
 EXPORT_SYMBOL(vprintk_emit);
 
-static int __vprintk(const char *fmt, va_list args)
+asmlinkage int ve_vprintk_emit(int facility, int level,
+			       const struct dev_printk_info *dev_info,
+			       const char *fmt, va_list args)
 {
-	return vprintk_emit_log(ve_log_state(), 0, LOGLEVEL_DEFAULT,
-			        NULL, fmt, args);
+	return vprintk_emit_log(ve_log_state(),
+				facility, level, dev_info,
+				fmt, args);
 }
+EXPORT_SYMBOL(ve_vprintk_emit);
 
 int vprintk_default(const char *fmt, va_list args)
 {
@@ -2531,7 +2535,7 @@ static asmlinkage int ve_vprintk(int dst, const char *fmt, va_list args)
 	if (ve_is_super(get_exec_env()) || (dst & VE0_LOG))
 		r = vprintk(fmt, args);
 	if (!ve_is_super(get_exec_env()) && (dst & VE_LOG))
-		r = __vprintk(fmt, args2);
+		r = ve_vprintk_emit(0, LOGLEVEL_DEFAULT, NULL, fmt, args2);
 	va_end(args2);
 
 	return r;
-- 
2.51.0



More information about the Devel mailing list