From: Jia He <justin.he@arm.com>
To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-perf-users@vger.kernel.org,
linux-kselftest@vger.kernel.org, kunit-dev@googlegroups.com,
kasan-dev@googlegroups.com, linux-mm@kvack.org
Cc: Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@kernel.org>, Ian Rogers <irogers@google.com>,
Adrian Hunter <adrian.hunter@intel.com>,
James Clark <james.clark@linaro.org>,
Brendan Higgins <brendan.higgins@linux.dev>,
David Gow <david@davidgow.net>, Rae Moar <raemoar63@gmail.com>,
Alexander Potapenko <glider@google.com>,
Marco Elver <elver@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Jia He <justin.he@arm.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Petr Mladek <pmladek@suse.com>, Kees Cook <kees@kernel.org>,
David Disseldorp <ddiss@suse.de>
Subject: [PATCH 5/7] misc: reject duplicate names in misc_register()
Date: Thu, 14 May 2026 05:04:53 +0000 [thread overview]
Message-ID: <20260514050455.2954509-6-justin.he@arm.com> (raw)
In-Reply-To: <20260514050455.2954509-1-justin.he@arm.com>
The miscdev kunit suite registers two miscdevices with the same name
and expects -EEXIST. The second call currently goes all the way to
sysfs_create_dir_ns(), which prints "cannot create duplicate filename"
with a backtrace on every run.
Walk misc_list under misc_mtx, return -EEXIST on a name collision and
free the just-allocated minor before returning.
To: Arnd Bergmann <arnd@arndb.de>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jia He <justin.he@arm.com>
---
drivers/char/misc.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/drivers/char/misc.c b/drivers/char/misc.c
index 726516fb0a3b..d6ffa21ac495 100644
--- a/drivers/char/misc.c
+++ b/drivers/char/misc.c
@@ -248,6 +248,28 @@ int misc_register(struct miscdevice *misc)
}
}
+ /*
+ * Detect duplicate names up-front so the subsequent
+ * device_create_with_groups() does not trip
+ * sysfs_create_dir_ns()->sysfs_warn_dup(), which unconditionally
+ * dumps a stack trace. Both the existing miscdev kunit suite
+ * (miscdev_test_duplicate_name) and any caller racing on the same
+ * name would otherwise pollute dmesg on every -EEXIST.
+ */
+ {
+ struct miscdevice *c;
+
+ list_for_each_entry(c, &misc_list, list) {
+ if (strcmp(c->name, misc->name) == 0) {
+ misc_minor_free(misc->minor);
+ if (is_dynamic)
+ misc->minor = MISC_DYNAMIC_MINOR;
+ err = -EEXIST;
+ goto out;
+ }
+ }
+ }
+
dev = MKDEV(MISC_MAJOR, misc->minor);
misc->this_device =
--
2.34.1
next prev parent reply other threads:[~2026-05-14 5:07 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-14 5:04 [PATCH 0/7] Silence spurious warnings and crashes from kunit test suites Jia He
2026-05-14 5:04 ` [PATCH 1/7] init/initramfs_test: wait_for_initramfs() before running Jia He
2026-05-14 5:58 ` David Disseldorp
2026-05-14 12:29 ` sashiko-bot
2026-05-15 5:24 ` Justin He
2026-05-14 5:04 ` [PATCH 2/7] kfence: kunit: skip when no pool is available Jia He
2026-05-14 7:54 ` Marco Elver
2026-05-14 5:04 ` [PATCH 3/7] lib/math/int_log: drop WARN_ON for value == 0 Jia He
2026-05-14 5:04 ` [PATCH 4/7] kunit: platform: catch duplicate (name, id) in kunit_platform_device_add() Jia He
2026-05-14 16:30 ` sashiko-bot
2026-05-14 5:04 ` Jia He [this message]
2026-05-14 7:00 ` [PATCH 5/7] misc: reject duplicate names in misc_register() Greg Kroah-Hartman
2026-05-14 7:25 ` Justin He
2026-05-14 17:18 ` sashiko-bot
2026-05-14 5:04 ` [PATCH 6/7] hw_breakpoint_test: fix test_many_cpus failure on large systems Jia He
2026-05-14 8:01 ` Marco Elver
2026-05-14 5:04 ` [PATCH 7/7] lib/tests: test_ratelimit: fix stress test thread lifecycle and leak Jia He
2026-05-14 18:18 ` sashiko-bot
2026-05-15 5:33 ` Justin He
2026-05-14 7:02 ` [PATCH 0/7] Silence spurious warnings and crashes from kunit test suites Greg Kroah-Hartman
2026-05-14 7:17 ` Justin He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260514050455.2954509-6-justin.he@arm.com \
--to=justin.he@arm.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=akpm@linux-foundation.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=arnd@arndb.de \
--cc=brauner@kernel.org \
--cc=brendan.higgins@linux.dev \
--cc=david@davidgow.net \
--cc=ddiss@suse.de \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=irogers@google.com \
--cc=jack@suse.cz \
--cc=james.clark@linaro.org \
--cc=jolsa@kernel.org \
--cc=kasan-dev@googlegroups.com \
--cc=kees@kernel.org \
--cc=kunit-dev@googlegroups.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=raemoar63@gmail.com \
--cc=viro@zeniv.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.