diff options
| author | bui duc phuc <phucduc.bui@gmail.com> | 2026-07-07 15:45:01 +0700 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2026-07-08 12:44:52 +0200 |
| commit | b45f4e8d787cfc667d38658da1b7ffb05c8b78a7 (patch) | |
| tree | adf62cacfee4a4fae2663a93387530903bac94cb | |
| parent | bf08a5f698dcb8495efd94f14d863a8e6b123d25 (diff) | |
| download | linux-b45f4e8d787cfc667d38658da1b7ffb05c8b78a7.tar.gz linux-b45f4e8d787cfc667d38658da1b7ffb05c8b78a7.zip | |
ALSA: control: Return -ENODEV instead of -EFAULT in snd_ctl_open()
When try_module_get() fails in snd_ctl_open(), the owning module is going
away and the device is no longer usable, so -EFAULT ("bad address") is the
wrong error. Return -ENODEV, matching the other unavailable-device paths
in this function(the NULL card check and the snd_card_file_add() failure).
This changes the errno reported to userspace on this rare race.
No other behaviour changes.
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20260707084506.718583-2-phucduc.bui@gmail.com
| -rw-r--r-- | sound/core/control.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sound/core/control.c b/sound/core/control.c index 037e455bb11b..0ca9fff56e51 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -68,7 +68,7 @@ static int snd_ctl_open(struct inode *inode, struct file *file) goto __error1; } if (!try_module_get(card->module)) { - err = -EFAULT; + err = -ENODEV; goto __error2; } ctl = kzalloc(sizeof(*ctl), GFP_KERNEL); |
