From nobody Tue Dec 16 07:41:27 2025 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 2F8803271E0 for ; Fri, 5 Dec 2025 18:34:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764959690; cv=none; b=Alpf/KS6NGKt1Jmd2oMYHB5Gvkk8NLVl+O/kZbqbw6F1B+QVnEeiqFVN+8BJ5tnwxnltw6WiU1OGSQNWILvTRinQq0b9NfNuCAJfm0mg1nq/EtUC8r/bCD+4vLkfN1VVe9Eoj7f/iRMqELFcc8i4PQ8+ybhcNLQbAarRn0HWfwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764959690; c=relaxed/simple; bh=Ih6V9VPXA5Qpy3DsmAEFl/upuY2gkbRUwxAzklkCycI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=de7q0/cRYa/ilBLmnb7f/u5T5ABTZslp+rMiBnL8ocVRWGKBMoQ4dZzO4R+b/pHE3x9mHFR5euHNxZ4lmIuPuGikSLdVy6UnThGjQcSSosI0GEX3r8yr4gB6JqT7GdWDNbNbIVn9jjufQP9YE3vgxPR1WleYDbinnO6IDE3dMcE= 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=QOI1Rn1t; arc=none smtp.client-ip=209.85.128.53 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="QOI1Rn1t" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-47798ded6fcso19529285e9.1 for ; Fri, 05 Dec 2025 10:34:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1764959686; x=1765564486; 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=zo0xT3RpkzKLFj3tzejRDwURrCZMlnkSEchsbNdrQLU=; b=QOI1Rn1tjU5TXJnVIfYf9zIIk/fGT3GJ8SHV6WaRGBQybu+cz5sfv1PNi5CuSLMu8I keg0oia4aeR45dL0k9uZ9MZ2ve+hAuWRg32d3zDYrkg3AtaILyJH/LOiQxbuIMTVEyH1 IEHfge3+7yHUwJ24jeLbzk7bp1DNTX9b2W1BExZXezGXO+DjTsoojRfbUXsEOGg1qvYL 9K/KeyrnbvLxn/pwoOM5EFWimGnbuDTd7lmJXCZZZ7o0MQ86uReIskz3f1atl1qhhLmu 6TR/osZIeCsHwzG9elqBxlQdeYWkx6MYcOF0HOb+Ijz7rZZxo+3X8eWPjQIItOV8DQoQ UswQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764959686; x=1765564486; 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=zo0xT3RpkzKLFj3tzejRDwURrCZMlnkSEchsbNdrQLU=; b=wOQ9w5o3XgQD5uTtRXQEFDYpX8K/SH5sBx3d0uai4VQK24TECrb7DzZA0tYrW2mCyC XFPmANMH5JGVnEV2m70qYd3Ra40epd0LIx1Hj6StTll4azrBdeoK3XEQeNagQAlfiNlX DK5B7AeF+0bgXFDXFakKrDd/Hp2A92SzoCxMPN+0XhXnmaJp7QNl5nDSjF5crP4+2bhe UorcTr3lQY+5ID8mgZ3LC2SA6/WdOSVlTYiOksXiq1Osp6uWEAS7EHcHUnH6Bb79+gur kSrcyP7tieN431Sc6sW/23PjWkhnMHAnptCgD/BBioC0Da0j4EtLx4cG2Re0c2oePLOH OKGA== X-Gm-Message-State: AOJu0YwYl9QJVsiSlOn+wtwfvm7Y++s5dDHo10wz+Im50K2jtNO6vVog wUqDcopmhBzXKZ7ZHJtlXuhjG5uvTNuE+D1BeeiBmMP4u3Dm1nCBT7W6rreuFMERIMk= X-Gm-Gg: ASbGnctQHQF5/si26sITk4GgxrKoi9yTpMQmxMaL5mlfr1Va5zwCJYfYOPbH2Y7gwWk 6Rv5/+i8W+ZiG5TkoakOWutQSL0xlo/ysy3I5UkK4Uqtyv56PA0JRi7xjLFsNufK7UbwqcVGDrm zQ0kJGZyKm8W6vkVnDJpy9vTK0RUOI8Rm5PpZgAI+C9Cwsw4o0LH5WCFXr22RBbs6vC+cjq5W60 x/4KzJNxFzS9FKz/nRAuhHMgW6hBIrXVdEOErI7R8dcMoHYWR7xkSWdYuGk5jt0SkGSTVT+PaHp JvlW2+aBAg8NCqknnXd/3dOHsTrjuKYB/mOknHye9zkjY8+Zz1708LSfdLnv5LN44TbDs/IPAG/ oTP/BhsLaZfeV+ZRllKCn9WrI4LrRag3LVO7S11oKhIVJp/nEuoPEKvuHkOEWWQa/UyBjHwlbvo kBwpqsU42C X-Google-Smtp-Source: AGHT+IHou3gB9qdKYs+FtCdM7DYK7Bp3UTGfSHC9oziIq6M8IWp/Qb8mFaPyzkKck5U9cKCtb3Qipg== X-Received: by 2002:a05:600c:3514:b0:477:7768:8da4 with SMTP id 5b1f17b1804b1-47939deac5bmr2413125e9.7.1764959686410; Fri, 05 Dec 2025 10:34:46 -0800 (PST) Received: from [127.0.0.1] ([2804:5078:919:1400:58f2:fc97:371f:2]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-55e6c939f42sm2540393e0c.11.2025.12.05.10.34.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Dec 2025 10:34:44 -0800 (PST) From: Marcos Paulo de Souza Date: Fri, 05 Dec 2025 15:34:32 -0300 Subject: [PATCH] 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: <20251205-nbcon-device-cb-fix-v1-1-906bdff5760b@suse.com> X-B4-Tracking: v=1; b=H4sIALclM2kC/x2MQQqAMAwEvyI5G2iLRfEr4qFNo+bSSgsiiH83e Jxldh5oXIUbzN0DlS9pUrKC7TugI+SdUZIyOOO8dcZjjlQyJlWJkSJucuNIPA4+OBvDBPo8K+v 8V5f1fT+9Hb1fZQAAAA== 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=1764959681; l=1114; i=mpdesouza@suse.com; s=20231031; h=from:subject:message-id; bh=Ih6V9VPXA5Qpy3DsmAEFl/upuY2gkbRUwxAzklkCycI=; b=efZqvrhxZz48NzIfRuAjBv5a6VvBN8IB+cPSAqtw+tDhpR5ufVQSILOGL4quz4g7cw4/YIajl 4eW/GRgDPShAJggPcbyhYA8IGJvSSX5Ef2/Vu6TpFwYENDy9bnzRC2G 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 --- I found this issue while creating a custom kernel module that implements the nbcon interfaces. --- kernel/printk/nbcon.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c index 3fa403f9831f..02809c44d7ea 100644 --- a/kernel/printk/nbcon.c +++ b/kernel/printk/nbcon.c @@ -1764,6 +1764,10 @@ bool nbcon_alloc(struct console *con) if (WARN_ON(!con->write_thread)) return false; =20 + /* The device_lock() and device_unlock() callbacks are mandatory. */ + if (WARN_ON(!con->device_lock || !con->device_unlock)) + return false; + rcuwait_init(&con->rcuwait); init_irq_work(&con->irq_work, nbcon_irq_work); atomic_long_set(&ACCESS_PRIVATE(con, nbcon_prev_seq), -1UL); --- base-commit: 322530a9c2ab1da67e5b0988fa29aca64d96ec8f change-id: 20251205-nbcon-device-cb-fix-7ce745a21ba8 Best regards, -- =20 Marcos Paulo de Souza