From nobody Mon Feb 9 10:12:57 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6787C6FD18 for ; Tue, 28 Mar 2023 21:47:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229878AbjC1Vq7 (ORCPT ); Tue, 28 Mar 2023 17:46:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229729AbjC1Vq4 (ORCPT ); Tue, 28 Mar 2023 17:46:56 -0400 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id CCD6B1712 for ; Tue, 28 Mar 2023 14:46:55 -0700 (PDT) Received: from skinsburskii.localdomain (c-67-170-100-148.hsd1.wa.comcast.net [67.170.100.148]) by linux.microsoft.com (Postfix) with ESMTPSA id E93B120FDA86; Tue, 28 Mar 2023 14:46:54 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E93B120FDA86 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1680040015; bh=5B2i+VHjiu+ubqKoN1kwXRD7hgJa5VH8yOvgkhGgb4o=; h=Subject:From:Cc:Date:From; b=bVJy7siypq98zpsZ4UGlciijsRdOt02pMb0+1UGTYnBeNPJjOKZcj6De5nKHMKSbb kMsSfT15YbCSdocn+371A517/9UGdM0vGS1YFLUPO9zyx2tUvjC7Fqpu1TjRMuXPW8 O7RPTDaweZIwHJXxcn4cvJAi0mxioF+qFB0FFfXg= Subject: [PATCH] printk: Remove obsoleted check for non-existent "user" object From: Stanislav Kinsburskii Cc: Stanislav Kinsburskii , Petr Mladek , Sergey Senozhatsky , Steven Rostedt , John Ogness , linux-kernel@vger.kernel.org Date: Mon, 20 Mar 2023 00:02:01 -0700 Message-ID: <167929571877.2810.9926967619100618792.stgit@skinsburskii.localdomain> User-Agent: StGit/0.19 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Stanislav Kinsburskii The original check for non-null "user" object was introduced by commit e11fea92e13f ("kmsg: export printk records to the /dev/kmsg interface") when "user" could be NULL if /dev/ksmg was opened for writing. Subsequent change 750afe7babd1 ("printk: add kernel parameter to control writes to /dev/kmsg") made "user" context required for files opened for wri= te, but didn't remove now redundant checks for it to be non-NULL. This patch removes the dead code while preserving the current logic. Signed-off-by: Stanislav Kinsburskii CC: Petr Mladek CC: Sergey Senozhatsky CC: Steven Rostedt CC: John Ogness CC: linux-kernel@vger.kernel.org Reviewed-by: Petr Mladek Reviewed-by: Sergey Senozhatsky --- kernel/printk/printk.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index fd0c9f913940..9644f6e5bf15 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -730,7 +730,7 @@ static ssize_t devkmsg_write(struct kiocb *iocb, struct= iov_iter *from) size_t len =3D iov_iter_count(from); ssize_t ret =3D len; =20 - if (!user || len > PRINTKRB_RECORD_MAX) + if (len > PRINTKRB_RECORD_MAX) return -EINVAL; =20 /* Ignore when user logging is disabled. */ @@ -792,9 +792,6 @@ static ssize_t devkmsg_read(struct file *file, char __u= ser *buf, }; ssize_t ret; =20 - if (!user) - return -EBADF; - ret =3D mutex_lock_interruptible(&user->lock); if (ret) return ret; @@ -859,8 +856,6 @@ static loff_t devkmsg_llseek(struct file *file, loff_t = offset, int whence) struct devkmsg_user *user =3D file->private_data; loff_t ret =3D 0; =20 - if (!user) - return -EBADF; if (offset) return -ESPIPE; =20 @@ -893,9 +888,6 @@ static __poll_t devkmsg_poll(struct file *file, poll_ta= ble *wait) struct printk_info info; __poll_t ret =3D 0; =20 - if (!user) - return EPOLLERR|EPOLLNVAL; - poll_wait(file, &log_wait, wait); =20 if (prb_read_valid_info(prb, atomic64_read(&user->seq), &info, NULL)) { @@ -944,9 +936,6 @@ static int devkmsg_release(struct inode *inode, struct = file *file) { struct devkmsg_user *user =3D file->private_data; =20 - if (!user) - return 0; - ratelimit_state_exit(&user->rs); =20 mutex_destroy(&user->lock);