[PATCH] ALSA: core: Use the allocated major number with major=0
From: Ali Ahmet Memiş
Date: Sun Oct 11 2026 - 18:17:04 EST
Since commit bd8f21876189 ("ALSA: core: propagate actual error code from
register_chrdev"), alsa_sound_init() only treats negative values from
register_chrdev() as errors. With the major=0 module option
register_chrdev() allocates a major number dynamically and returns it
but snd_major and the devices still use 0. The devices are then
created without device numbers so no /dev/snd nodes appear and sound
is unusable.
Use the returned major number when major=0 is given.
Fixes: bd8f21876189 ("ALSA: core: propagate actual error code from register_chrdev")
Signed-off-by: Ali Ahmet Memiş <aliamemis@xxxxxxxxxxx>
---
sound/core/sound.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/core/sound.c b/sound/core/sound.c
index 24f40763a20c..a0349a7e9495 100644
--- a/sound/core/sound.c
+++ b/sound/core/sound.c
@@ -396,7 +396,6 @@ static int __init alsa_sound_init(void)
{
int err;
- snd_major = major;
snd_ecards_limit = cards_limit;
err = register_chrdev(major, "alsa", &snd_fops);
@@ -404,6 +403,9 @@ static int __init alsa_sound_init(void)
pr_err("ALSA core: unable to register native major device number %d\n", major);
return err;
}
+ if (!major)
+ major = err;
+ snd_major = major;
err = snd_info_init();
if (err < 0) {
--
2.55.0