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 0D93780777 for ; Tue, 6 Oct 2026 21:55:35 +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 696LsKOn028151; Wed, 7 Oct 2026 00:54:21 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696LsKOn028151 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="FUTr8H/f" Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 696Ls9kT028113 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 7 Oct 2026 00:54:09 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 696Ls9kT028113 Received: by mail-wm1-f69.google.com with SMTP id 5b1f17b1804b1-4a019d53f46so26819075e9.3 for ; Tue, 06 Oct 2026 14:54:09 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBwHy7lFUGfS3k61slznsJLGUMJNeM3zzb4R7h4o3yHO3npIg1CqjBZbmTT7CB8pRVHCVbmj4w==@openvz.org X-Gm-Message-State: AFuF++kKcMASrWvyTEB/nvzUKkGvHCDMg4Z8IcHA7xLgyEk6kIKvJtlL p3+X/Qene1tf+NnZeBi7d+2cjl7523v/hYR6RKRCb67WSwrxYXGbbCz5T3pID450ET5TAqA6ZR8 Q7LqIosI47WoYYxQo3qpc1sAPEHFz/fCbs8Y2JuwZp3JQ1m7jI/0iLQ== X-Gm-Gg: AYBFou0Gvagtb6utb01KKgDHIqszhknmV7W2AjXAEeNksDQiHLS76SR9qkNIm9kuGyQ oBHeQKTVq1H0Jr60rSK15MdS1lL92S79mlT3pT1iBAtEGpi0Rtxq3TFjP9KCvGFRqJ3ckA4JwCg 5R0HUrrjzVabdjeuUtMd6f7JiJ+SfaABHr+AspknrBRnFprpdEHYWYTrg+LaFjUo6IyBDvS5rx8 bK8G/D/M9GDOb/WHU1V5RVB/Q181R6tsJO1OLlnJDF/4jxSHoj0LQJjhaTeRThSvISOh5ImDwj7 PXaBVAF1yS7a+jgMhtTBIHm7QOyNu6EOAK9gKTaVahKM7tm6DA+fWlwsQ4ojrwU5Oc53eDu+0UV wJESshQpwbViwZlGSpQVRmFrvmqAs X-Received: by 2002:a05:600c:8b6e:b0:49d:17d4:d6ad with SMTP id 5b1f17b1804b1-4a18064d35bmr1786795e9.23.1791323649087; Tue, 06 Oct 2026 14:54:09 -0700 (PDT) X-Received: by 2002:a05:600c:8b6e:b0:49d:17d4:d6ad with SMTP id 5b1f17b1804b1-4a18064d35bmr1786625e9.23.1791323648639; Tue, 06 Oct 2026 14:54:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1791323648; cv=none; d=google.com; s=arc-20260327; b=Cu2bLzgbtvNOiXFESlq1ztL/OZCtRHO+zkNtTk3Gjfx55P5ErdoOy3NZAfpd10couK DdC/hx885uz+GG2SK+7ZAv916pfQiJXySjjAPKmVV6p9lOp1C6xuqt76PxxREAxbAHDk sYc/sliyIqLxq0yLv4g6v5zLjuL2Sb7qcxPtmUfrsub35ZlzjWmYuQJAWghSy2MG3Y3t pG7PaDCvMwsUXs9u4g+gOAgV0HhRqxXxTXQt0Ia+q+PjObrNwB+JmRuei3CZZU3CLYdw lUJx9WR2eQ8X63rk/XCO9FGFNDaj3MnmcLHLVu9XjHh1aNNZDkqvNjSFLgqWIhkm4Ank OoBA== 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=qxDc+R3aPG8cEdp5mmd3IFOllj1eLCwZHAcc+Tf/KXA=; b=Qi7i/qWgJTRLfSZxW4MFtOP8G50FaVBiv7yTX9wGc9TIP/E4GNlkg3N+WJDIX4Z7DO XjBgf9BRsKSxrBSmJqy8k+KW5rVq1tjW6DTW1tXX8F75aZ9pq4wY/7refs+5Wmg/IB71 LL6hI1yBZAcoa9ectPGMQepKv3Gi0QlF39EuDn+ol7tChh+jfAAym+tFvKNgYnmv0O19 dB+VRg+UInRsd1Mg8JWyGhN/jUlDOBhcZOOVvwu1+o8GnTbOq/skBsaiEJ82iqCUMHcq VBOf42opX7vqCDMh1EGw6x2I31AByxe12WjpF2S1k2gtd4DiIwBPbxHyKjz9Z9DxP2zo NrNg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b="FUTr8H/f"; 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-48c7249f3d9si1908149f8f.313.2026.10.06.14.54.08 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Oct 2026 14:54:08 -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="FUTr8H/f"; 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=FUTr8H/fcPPIX4kSJiV /aJ4JC0Usi5C/kTjaJ7ble5+J0xemnN3x/B00lXzXGlhQf/ENJFauJNgWJp8Qn0ny4lNo8YAwzdmv kCdNgM6ZRBvl07WQz3HqBvLO8wdy4h+hKFUNJVj3TjkbDY9tO7b/IfullPVy/sgXMuW3iqwJrfry8 Goe/EFGHdrNBtgBvJD1p5IMPqHtmato386sN0u7DcLJpurWZ7nxDNNac3Zw0VrsuKC+IFzeOZaVzi eSegwg5ndA+4QxavQblGfU1NqSM566xQy7XbvY1aIyXTb+f9md17s8Yv7+/Ol1xlP1DntVbWoob5V rWmGYEaYfQ44u+w==; 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 1xED3f-004Dgb-06; Tue, 06 Oct 2026 23:53:58 +0200 From: Vladimir Riabchun Date: Tue, 06 Oct 2026 23:53:53 +0200 MIME-Version: 1.0 Message-Id: <20261006-ve-printk-irq-v2-2-db1dc4f6ed07@virtuozzo.com> References: <20261006-ve-printk-irq-v2-0-db1dc4f6ed07@virtuozzo.com> In-Reply-To: <20261006-ve-printk-irq-v2-0-db1dc4f6ed07@virtuozzo.com> To: vasileios.almpanis@virtuozzo.com, Konstantin Khorenko X-Mailer: b4 0.14.3 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v2 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