diff mbox

[RFC,20/21] ALSA: pcm: return error immediately for parameters refinement

Message ID 20170514085756.22382-21-o-takashi@sakamocchi.jp (mailing list archive)
State New, archived
Headers show

Commit Message

Takashi Sakamoto May 14, 2017, 8:57 a.m. UTC
When refining mask/interval parameters, helper functions can return error
code. This error is not handled immediately, thus there're useless
processing.

This commit handles the error immediately.

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
---
 sound/core/pcm_native.c | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)
diff mbox

Patch

diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 92ab8b2..05230f4 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -288,11 +288,13 @@  static int constrain_mask_params(struct snd_pcm_substream *substream,
 
 		trace_hw_params_mask(substream, k, -1, &old_mask, m);
 
+		if (changed < 0)
+			return changed;
+
+
 		/* Set corresponding flag so that applications get it. */
 		if (changed)
 			params->cmask |= 1 << k;
-		if (changed < 0)
-			return changed;
 	}
 
 	return 0;
@@ -326,11 +328,12 @@  static int constrain_interval_params(struct snd_pcm_substream *substream,
 
 		trace_hw_params_interval(substream, k, -1, &old_interval, i);
 
+		if (changed < 0)
+			return changed;
+
 		/* Set corresponding flag so that applications get it. */
 		if (changed)
 			params->cmask |= 1 << k;
-		if (changed < 0)
-			return changed;
 	}
 
 	return 0;
@@ -431,6 +434,9 @@  static int constrain_params_by_rules(struct snd_pcm_substream *substream,
 						 hw_param_interval(params, r->var));
 		}
 
+		if (changed < 0)
+			return changed;
+
 		rstamps[k] = stamp;
 
 		/*
@@ -443,8 +449,6 @@  static int constrain_params_by_rules(struct snd_pcm_substream *substream,
 			vstamps[r->var] = stamp;
 			again = true;
 		}
-		if (changed < 0)
-			return changed;
 
 		stamp++;
 	}