diff mbox

[7/9] ALSA: pcm: Use __ffs() instead of ffs() in snd_mask_min()

Message ID 1419878506-28684-7-git-send-email-lars@metafoo.de (mailing list archive)
State Accepted
Commit 599ee3291ae88700749e2910a11d1c0f0532355e
Headers show

Commit Message

Lars-Peter Clausen Dec. 29, 2014, 6:41 p.m. UTC
The difference between __ffs and ffs is that ffs will return a one based
index whereas __ffs will return a zero based index. Furthermore ffs will
check if the passed value is zero and return zero in that case, whereas
__ffs behavior is undefined if the passed parameter is 0.

Since we already check if the mask is 0 before calling ffs and also subtract
1 from the result __ffs is the better choice.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
---
 include/sound/pcm_params.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox

Patch

diff --git a/include/sound/pcm_params.h b/include/sound/pcm_params.h
index 042049b..c99e20b 100644
--- a/include/sound/pcm_params.h
+++ b/include/sound/pcm_params.h
@@ -92,7 +92,7 @@  static inline unsigned int snd_mask_min(const struct snd_mask *mask)
 	int i;
 	for (i = 0; i < SNDRV_MASK_SIZE; i++) {
 		if (mask->bits[i])
-			return ffs(mask->bits[i]) - 1 + (i << 5);
+			return __ffs(mask->bits[i]) + (i << 5);
 	}
 	return 0;
 }