[Devel] [PATCH RHEL10 COMMIT] ve/printk: Add ve_vprintk_emit() helper

Konstantin Khorenko khorenko at virtuozzo.com
Fri Oct 10 19:16:46 MSK 2025


The commit is pushed to "branch-rh10-6.12.0-55.13.1.2.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-55.13.1.2.10.vz10
------>
commit 6d6f58b4c77128585345238699ae9647a56c3745
Author: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
Date:   Tue Oct 7 16:50:26 2025 +0800

    ve/printk: Add ve_vprintk_emit() helper
    
    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>
    
    Feature: printk: per-CT virtualization
---
 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;


More information about the Devel mailing list