From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 907B880726 for ; Sun, 11 Oct 2026 22:54:14 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69BMr2Rr009387; Mon, 12 Oct 2026 01:53:02 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69BMr2Rr009387 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="fn/cvwPG" Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69BMqoqv009346 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 12 Oct 2026 01:52:50 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69BMqoqv009346 Received: by mail-wr1-f71.google.com with SMTP id ffacd0b85a97d-48c50ed05abso1262323f8f.0 for ; Sun, 11 Oct 2026 15:52:50 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBzzSuLbQZVIu3gDLJqqjEaFj7bAxUTIckhaonUnZ353R7PjJuXBk8uyyg8JzZKcGuHrTaFsBA==@openvz.org X-Gm-Message-State: AFq9FYI0STG8z8tENZXJ0hURtB0Ap9c70396ayhvvNvoimduZtra9eOp 49a2yWfu/2mF6CozAQzPG/slwgIKy44cuLTsmprvyo0LgTS1q/DLffZ431WNID7U41v+JYXvJHb kilKxIVn/qNPWcEBd09JgT84HJUrpEW1/FQf+GGzSOiDOmTwJUDA10g== X-Gm-Gg: AYBFou1Zng2ZONQZvnXU9EbIhouZ0OOGpTTy1qRVqFxXYh3gJ1Y9eqJ5iOE7k1JLPyE p11Rih9rAczL0p4GVr/Eya9CCHs/ddpNT6dAvidBs3InRNJZUl0iM0Jak41sdSTvMLFu1yvwT+v w6xVXo99vWLDN2OD6rdeyOUZH+fwG1UtYKLbF1GXkK5QeDXvtkQ26XKpc0DwL985bM0/x49XNC6 Y3PpL2gWSolQUQE25Yqz7S5l8na/XNkqwftKRFmcG1GHbiT9HiNPtM07Rxw4hTxhwi4ob5voEUh rEa4psBV5bUbz2RRLBUrfqu/Zh4kRcdz6WwsP0rhV0SnckAS1Dhj8z9NzHT/RcTE9Y6+nJzMDH+ PAWS/7V7bZi3yJmVCGZwRdq5fTBT+jw== X-Received: by 2002:a5d:42c8:0:b0:488:7df9:3898 with SMTP id ffacd0b85a97d-48dbacf9d8bmr9666969f8f.56.1791759170421; Sun, 11 Oct 2026 15:52:50 -0700 (PDT) X-Received: by 2002:a5d:42c8:0:b0:488:7df9:3898 with SMTP id ffacd0b85a97d-48dbacf9d8bmr9666956f8f.56.1791759169808; Sun, 11 Oct 2026 15:52:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791759169; cv=none; d=google.com; s=arc-20260327; b=JXzgKywv8QnW6bbs+pHX6/kyWgrM8r5S1I3AgbeeSyV0QeHAM22ISINmQn9SQ0TkGQ bpTWdTneh67dGajndhp7dJ85tYoXWboVqib/EpujIKpZ1VPvEJGW1J8IfCPnnuQ9c04f PZ0IScMZ5slw+XXmBwgEcow0mvp86KWqiUbJ6GqQ4HmVXio82myjudyi2fUk+0c2FbfZ gwo1betwiiHQX8F7YXwkaIoJ0DvD2CAl7kfeSHFM5kKT4YgmKXLWOQKJWYlVDeG5CBN2 vKp+cXqd0/h4sEOA5KfvYyFD5VYxbOM1A0aldco776OoPVHbCXVRSohEDRGx1OIBuD8d pEqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=u/R1XG4C52nrFSaD9N5Kg34+pYL/GjWVZWejcj4tA/Q=; fh=eCOFrBZAqsL6jjT8ApulcBPCLrgIlXlNCEpSn7Ap5O8=; b=nmjKcMrofnfBtJZ+TI0WA3sbGn0M/E+dHW0E6oTkQQKhPzkr6JZtrdOa25i+bRAsOA oFdbuwWeyJdP2o4PShjiQB4kaGG7/faui4q+HUQBu4LOCTm4RgT3UiZMLglUAwE4CblJ 0RlBf5NSbFGckEEaR4dnjsSwtun5OrLEEKnWh/OnOuBXWCQawmvl8cQzDGgmeMdG7s6b DVStX21mIUhsNu2jGa4tlxLGEAK7OEqGpES6V3pDbuEFg/XLJCUZgsOteODPFKQsnN+l soOmkhN5i4W47FnKxzPrYg0lF/O9kdKfoa8dkCNyOtE205/asSmv0NNmFt4orOo7hENR 7Oww==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b="fn/cvwPG"; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48dc60f8bd3si9223853f8f.100.2026.10.11.15.52.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 11 Oct 2026 15:52:49 -0700 (PDT) Received-SPF: pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b="fn/cvwPG"; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=u/R1XG4C52nrFSaD9N5Kg34+pYL/GjWVZWejcj4tA/Q=; b=fn/cvwPGvEio/t3yxOb o5/Z4EnefOgjvSm+RrOMwNBMKXPdQ/6K9/7iJBwp7zHr/0xsI7z/FBwWgjhEfhABbzgyQT3R80qwg Ka38h9SQqP3BxKTjyNkNCNg2pZGeJJhV2g+7Bl7rgzFcLvzMOfV+aZErSzLx4Z1uS3OMX/c5kuCdo luhi02JmB7eNJFG9iYvAyuK0+BXkxjydrZAKSj1rd3mg+nDPBO/+72msWJTOatLqyPJfnVSr/LJBP UJDC/aj/itaKZENTqlgHOpYxs1rii0qpKrPDx/qOTMNFlCv959+SC/2C0TmcC93x5VUw1MZ+ZDmig nUPa0Seiwgqtv3w==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=192.168.1.87) by relay.virtuozzo.com with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1xG2M4-002SCD-1j; Mon, 12 Oct 2026 00:52:42 +0200 From: Vladimir Riabchun Date: Mon, 12 Oct 2026 00:52:29 +0200 MIME-Version: 1.0 Message-Id: <20261012-ve-printk-irq-v3-2-efc95fd5c78a@virtuozzo.com> References: <20261012-ve-printk-irq-v3-0-efc95fd5c78a@virtuozzo.com> In-Reply-To: <20261012-ve-printk-irq-v3-0-efc95fd5c78a@virtuozzo.com> To: vasileios.almpanis@virtuozzo.com, ptikhomirov@virtuozzo.com, Konstantin Khorenko X-Mailer: b4 0.14.3 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v3 2/6] ve/printk: Report potentially leaking usage of ve_printk functions X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org We don't want to rely on get_exec_env() value in non-task context. When this happens, let's issue a WARN and either reject printing or return host log state. Some messages may probably go to host dmesg instead of CT, but at least we won't leak info to random container. https://virtuozzo.atlassian.net/browse/VSTOR-146839 Feature: ve printk Signed-off-by: Vladimir Riabchun --- drivers/base/core.c | 6 ++++-- kernel/printk/printk.c | 11 ++++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 2d233ffb5661..ba50bdbfb648 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -4943,7 +4943,7 @@ static int ve_dev_vprintk_emit(int level, const struct device *dev, const char * int ve_dev_printk_emit(int dst, int level, const struct device *dev, const char *fmt, ...) { va_list args, args2; - int r; + int r = 0; WARN_ON_ONCE(!dst || (dst & ~VE_LOG_BOTH)); @@ -4952,7 +4952,9 @@ int ve_dev_printk_emit(int dst, int level, const struct device *dev, const char if (ve_is_super(get_exec_env()) || (dst & VE0_LOG)) r = dev_vprintk_emit(level, dev, fmt, args); - if ((dst & VE_LOG) && !ve_is_super(get_exec_env())) + + /* Report IRQ usage here - printing to VE requires explicit ve reference */ + if ((dst & VE_LOG) && !WARN_ON_ONCE(!in_task()) && !ve_is_super(get_exec_env())) r = ve_dev_vprintk_emit(level, dev, fmt, args2); va_end(args2); diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index efe2c3279c85..b06fc835d7c7 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -560,7 +560,8 @@ struct log_state *ve_log_state(void) { struct log_state *log = &init_log_state; #ifdef CONFIG_VE - if (get_exec_env()->log_state) + /* get_exec_env() is reliable only in task context */ + if (!WARN_ON_ONCE(!in_task()) && get_exec_env()->log_state) log = get_exec_env()->log_state; #endif return log; @@ -2540,7 +2541,9 @@ static asmlinkage int ve_vprintk(int dst, const char *fmt, va_list args) va_copy(args2, args); if (ve_is_super(get_exec_env()) || (dst & VE0_LOG)) r = vprintk(fmt, args); - if ((dst & VE_LOG) && !ve_is_super(get_exec_env())) + + /* Report IRQ usage here - printing to VE requires explicit ve reference */ + if ((dst & VE_LOG) && !WARN_ON_ONCE(!in_task()) && !ve_is_super(get_exec_env())) r = ve_vprintk_emit(0, LOGLEVEL_DEFAULT, NULL, fmt, args2); va_end(args2); @@ -2574,7 +2577,9 @@ static asmlinkage int ve_vprintk_deferred(int dst, const char *fmt, va_list args va_copy(args2, args); if (ve_is_super(get_exec_env()) || (dst & VE0_LOG)) r = vprintk_emit(0, LOGLEVEL_SCHED, NULL, fmt, args); - if ((dst & VE_LOG) && !ve_is_super(get_exec_env())) + + /* Report IRQ usage here - printing to VE requires explicit ve reference */ + if ((dst & VE_LOG) && !WARN_ON_ONCE(!in_task()) && !ve_is_super(get_exec_env())) r = ve_vprintk_emit(0, LOGLEVEL_SCHED, NULL, fmt, args2); va_end(args2); -- 2.52.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel