From nobody Tue Dec 16 07:27:34 2025 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D2E125A2A5 for ; Mon, 8 Dec 2025 14:06:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765202808; cv=none; b=lQCVasNfQx40sTwNoSsQCI3LYpRTwViq7hSSdpgwR/DdOcCvy46JeoVqxzI5bQo/sDLU4OUV8W9FVx9zCLltVgsa3yDRaWlObmLmEaSnRVF2TTzk6FmL+QbNe9uGGhx+LoP7WycLDCFbAPZZrcFDgarx2UotLWg1awwGHERRxyQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765202808; c=relaxed/simple; bh=Opxfl8VPAmST9LwkTZ3/qEK5531pN6h8mnkAIdoSKIc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=Ph4PhFpHJCK7mng2u37NT9Kl/ElidWUp6Hj16OMuogdCOw5UqXYc2F/44NyxNxWuT666diya7vF9jSDexZZijsVxb47aFnIaZMPpGbRdac71kNB9GMdeVlJNHZ/gZO2ePRwXC4AfztElvU+XIeHRWTp+iQ/HmXKn3htYORO+GiA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=Tcu09rE0; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="Tcu09rE0" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-42e2e77f519so2870718f8f.2 for ; Mon, 08 Dec 2025 06:06:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1765202804; x=1765807604; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=Lxr6d6So/D1J3tx26Yqyv85w7fkA3+mppPyRwv27GCo=; b=Tcu09rE0iDajGroi2PlbAwPDjd6kmg4qqjFcAKtKXWjA8eZQD9xukbQCfKPyBk+5tl hGMtazhKkCfqX44dVHdPzFOyNQ3LCJrP1E/bWy4RoMh7rHrbNpak0R4QX+OrcaQAKj5e 1QLadvxTmZVjr0qf2CqyLv/rAbQAzLYnaD57djILejw+U3mGXY9OW3zQPsba09Pm4U0X BsdCaQaKAYXmTaCyCAfd7+PJSuHSLHwYsQSDMcsQz/1JeIvZBEhJZOm1dswr4vG5WDbN OaPv08f1B3OiwcGoB8foOW+p/jtntcrk8i+PCJQ4Z0Cge4sLGn/XUK0sTLwRFlUFxQuG Nu0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765202804; x=1765807604; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Lxr6d6So/D1J3tx26Yqyv85w7fkA3+mppPyRwv27GCo=; b=B/0dQR2LF4xpmVayUM0qKUKrljfhIRIudFiyxl3tB/nNNCCtAyfC0SnDfakec2qg1E ud0Py6G7n1QLkyLvgFs74kFHBEF3RC4//FnHYY4xYg0yVQKuHPIrMtedbAqb6TOBrNf/ m9pje9hxUdN60rHaTVyb4DO/RGOwx/+HAr5lAmaqEJowMRrsVfb6Bg9K8xZwYlYwO+Q/ cKz3+PIdeXAqFy3Bpe3MJjtBPdsh1FC8770zANMDc8sEoLkSJW1uKRYL4Gi3GkHfobzN 2uknCyxt12m327IbnqFRqxBBQbmPjH5tRf41ENv/2P1sCWz4rgW0q3NHgygSuT3KOs/6 Mpxw== X-Gm-Message-State: AOJu0Yz6hhn04kasi6ra9lMYx6yH/tJObrco+8ML6VlOPRvWlVr3vWfc rpWwDX+vKKw8yEHDcj6NLd+qCMMnKFZqNhojMZHc3QH7bKvP9pnu3B6zK3sHo5GlcntVBkM47Nf DbIru X-Gm-Gg: ASbGncujq66Fi+qWSpVE8I02xhJDJ+ripSWMWValqsTqRbdD+4b4Fnv28oTLmsiII1j tUuSAhmv1aQTG5q0e/bRjJ1jJ9OLJbXEIr0ouAePZ2JRSQQ7f1V//Gg73F6ZnyAhuQfoFcpELfs 6JmKv4tMlYNHdQQKPMr0ag4M2qjd/T49pmeknIEmMA4NReNxzsVm5udGA/6+0nH2W4SXC0k2dvz GMRlwE2cPESa26nnmpp4uLrot0tbiEmb1puLGHDlA4u/O8bl7zKdqzcCeEMUrwmW+M9XGgp/PED pMNyyzblAa7KLwV4WMq9qfMSbvCZmKgktJ5GT2jPhjAX6PDiTITIjV6V2HpgRGuYhDC+wVMyZG5 IIkBVxwUsEYFyZaHj7a3IgLk1lv5d/Rpg2A4a2bIWKrWef9qNyTKWyqtBfGCfFB1xbErghDe1LA qMD7jmmnAUb4ZJFVFCIh6/Dxjb4zTsVcmmn1I= X-Google-Smtp-Source: AGHT+IEGU9EgQnqK32H3f2HIz4JEs+w58OtBnSVJoPIupj6mH5f+NKffeE1uMoGKpMiAzHzNLFyAhA== X-Received: by 2002:a05:6000:2510:b0:42b:3963:d08f with SMTP id ffacd0b85a97d-42f89f0cb43mr9354226f8f.26.1765202804381; Mon, 08 Dec 2025 06:06:44 -0800 (PST) Received: from [127.0.0.1] (99.36.160.45.gramnet.com.br. [45.160.36.99]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42f7d331df0sm26791630f8f.36.2025.12.08.06.06.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Dec 2025 06:06:44 -0800 (PST) From: Marcos Paulo de Souza Date: Mon, 08 Dec 2025 11:06:16 -0300 Subject: [PATCH v2] printk: nbcon: Check for device_{lock,unlock} callbacks Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251208-nbcon-device-cb-fix-v2-1-36be8d195123@suse.com> X-B4-Tracking: v=1; b=H4sIAFfbNmkC/32NSw7CIBCGr9LM2jFApKgr72G64DFYFoIBbTQNd 3fsAVx+X/7HCo1qogbnYYVKS2qpZAa1G8DPNt8IU2AGJZSWSmjMzpeMgaOe0DuM6Y3Gkzloq6S zR+DmoxLrbfU6Mc+pPUv9bCeL/Nn/e4tEiScxuhCjNqNwl/ZqtPflDlPv/QseWCwOtQAAAA== X-Change-ID: 20251205-nbcon-device-cb-fix-7ce745a21ba8 To: Petr Mladek , Steven Rostedt , John Ogness , Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org, marcos@mpdesouza.com, Marcos Paulo de Souza X-Mailer: b4 0.15-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1765202801; l=1400; i=mpdesouza@suse.com; s=20231031; h=from:subject:message-id; bh=Opxfl8VPAmST9LwkTZ3/qEK5531pN6h8mnkAIdoSKIc=; b=SUXInOzf5JCF+ALKvasFOXj2UKdwRNtgD+zM/lEdOU1oCsq9mw4ac+oh6mj8di4BAKdmmlW80 UOGS00Ufm+jDhInBNp/JK6/1DS/1vFDtqIbjuoRCaq9qgr6+YnaAwCC X-Developer-Key: i=mpdesouza@suse.com; a=ed25519; pk=/Ni/TsKkr69EOmdZXkp1Q/BlzDonbOBRsfPa18ySIwU= These callbacks are necessary to synchronize ->write_thread callback against other operations using the same device. Signed-off-by: Marcos Paulo de Souza Reviewed-by: John Ogness --- I found this issue while creating a custom kernel module that implements the nbcon interfaces. --- Changes in v2: - Merged the checks device locks with write_thread check, suggested by John. - Link to v1: https://patch.msgid.link/20251205-nbcon-device-cb-fix-v1-1-90= 6bdff5760b@suse.com --- kernel/printk/nbcon.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index 3fa403f9831f..1dfc4a6a44bf 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -1760,9 +1760,12 @@ bool nbcon_alloc(struct console *con) /* Synchronize the kthread start. */ lockdep_assert_console_list_lock_held(); =20 - /* The write_thread() callback is mandatory. */ - if (WARN_ON(!con->write_thread)) + /* Check for mandatory nbcon callbacks. */ + if (WARN_ON(!con->write_thread || + !con->device_lock || + !con->device_unlock)) { return false; + } =20 rcuwait_init(&con->rcuwait); init_irq_work(&con->irq_work, nbcon_irq_work); --- base-commit: 322530a9c2ab1da67e5b0988fa29aca64d96ec8f change-id: 20251205-nbcon-device-cb-fix-7ce745a21ba8 Best regards, -- =20 Marcos Paulo de Souza