[alsa-devel] [PATCH 4/5] ALSA: control: improve returned value because of the rest
Takashi Sakamoto
o-takashi at sakamocchi.jp
Wed Feb 11 11:40:12 CET 2015
When a character device doesn't have enough spaces for requested number
of controls or values, currently return -ENOMEM. This should be -ENOSPC
(No space left on device).
This commit improves this behaviour.
Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
---
sound/core/control.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/sound/core/control.c b/sound/core/control.c
index bce4730..9944d75 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -313,7 +313,7 @@ static int snd_ctl_find_hole(struct snd_card *card, unsigned int count)
/* this situation is very unlikely */
dev_err(card->dev, "unable to allocate new control numid\n");
- return -ENOMEM;
+ return -ENOSPC;
}
return 0;
}
@@ -355,9 +355,9 @@ int snd_ctl_add(struct snd_card *card, struct snd_kcontrol *kcontrol)
err = -EBUSY;
goto error;
}
- if (snd_ctl_find_hole(card, kcontrol->count) < 0) {
+ err = snd_ctl_find_hole(card, kcontrol->count);
+ if (err < 0) {
up_write(&card->controls_rwsem);
- err = -ENOMEM;
goto error;
}
list_add_tail(&kcontrol->list, &card->controls);
@@ -422,9 +422,9 @@ int snd_ctl_replace(struct snd_card *card, struct snd_kcontrol *kcontrol,
goto error;
}
add:
- if (snd_ctl_find_hole(card, kcontrol->count) < 0) {
+ err = snd_ctl_find_hole(card, kcontrol->count);
+ if (err < 0) {
up_write(&card->controls_rwsem);
- ret = -ENOMEM;
goto error;
}
list_add_tail(&kcontrol->list, &card->controls);
--
2.1.0
More information about the Alsa-devel
mailing list