[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